实现客户端与服务端的双向通讯
服务端
public class Server {
public static void main(String[] args) throws IOException {
System.out.println("服务端启动.......");
Scanner sc = new Scanner(System.in);
// 1 创建服务端Socket
ServerSocket server = new ServerSocket(8888);
//2 获取客户端的Socket
Socket socket = server.accept();
//3.获取输入流
BufferedReader br= new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 4 获取输出流
PrintStream ps = new PrintStream(socket.getOutputStream());
String clientMsg = "";
String serverMsg = "";
while (!clientMsg.equals("exit") && !clientMsg.equals("e")) {
clientMsg = br.readLine();
System.out.print("客户端消息:");
System.out.println(clientMsg);
if(clientMsg.equals("exit") || clientMsg.equals("e"))
{
break;
}
System.out.print("回复:");
serverMsg = sc.next();
ps.println(serverMsg);
}
ps.println("bye");
socket.close();
System.out.println("服务端关闭");
}
}
客户端:
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("客户端启动。。。。。。");
Scanner sc = new Scanner(System.in);
//1 建立客户端的网路套接字Socket
Socket socket = new Socket("127.0.0.1",8888);
// 2 通过客户端的socket获取输出流
PrintStream ps = new PrintStream(socket.getOutputStream());
//3.获取输入流
BufferedReader br= new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientMsg = "";
String serverMsg = "";
while(!serverMsg.equals("bye")) {
System.out.print("客户端发送:");
clientMsg = sc.next();
ps.println(clientMsg);
serverMsg = br.readLine();
System.out.print("服务端回复:");
System.out.println(serverMsg);
}
br.readLine();
socket.close();
System.out.println("客户端关闭");
}
}
当然,通过这个也可以实现多方通信,更改地址就好。