Socket (ip,port)任何臺(tái)機(jī)兩個(gè)要連在一起需要 ip和port ( 端口 監(jiān)聽)秽之。
只要port相同。一臺(tái)機(jī)器有幾個(gè)程序吃既,每個(gè)程序需要一個(gè)端口考榨,傳遞接受包观挎。
ServerSocket ( port )服務(wù)器打開松捉。
如果Socket s1發(fā)出消息,accept ( ) 接受以后創(chuàng)建Socket ss與之對應(yīng)蔑歌。
Socket s2 = accept ;
Socket的兩個(gè)類
InputStream(輸入),可以接受輸入的情況
OutputStream(輸出).可以傳輸輸出的數(shù)據(jù)
服務(wù)器端
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Server {
public static int port=3001;
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(3001);
System.out.println("在3001上啟動(dòng)服務(wù)器");
while(true){
Socket socket=ss.accept();
System.out.println("已經(jīng)接收");
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String clientMsg;
String serverMsg;
Scanner sc = new Scanner(System.in);
clientMsg = input.readLine();
while(!"bye".equals(clientMsg)){
System.out.println(clientMsg);
sc.hasNext();
serverMsg = sc.nextLine();//等待發(fā)消息
output.write(serverMsg+"\r\n");
output.flush();//發(fā)送
clientMsg = input.readLine();
}
sc.close();
ss.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客戶端
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
try {
Socket s=new Socket("localhost",3001);
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String clientMsg;
String serverMsg;
Scanner sc = new Scanner(System.in);
clientMsg = sc.nextLine();
while(!"bye".equals(clientMsg)){
output.write(clientMsg+"\r\n"); //"\r\n"換行
output.flush();//發(fā)送
serverMsg = input.readLine();//等待發(fā)消息
System.out.println("serverMsg"+serverMsg);//打印消息
clientMsg = sc.nextLine();
}
sc.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}