TCP多收多发
TCP多收多发
客户端代码:
public class ClientDemo {
public static void main(String[] args) throws IOException {
// 创建一个Socket对象
Socket socket = new Socket("127.0.0.1", 10000);
// 获取一个IO流开始写数据
OutputStream os = socket.getOutputStream();
// 把低级的字节输出流包装称数据输出流
DataOutputStream dos = new DataOutputStream(os);
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("请说:");
String msg = sc.nextLine();
//exit退出程序
if("exit".equals(msg)) {
System.out.println("退出成功");
dos.close();
socket.close();
break;
}
// 开始写数据
dos.writeUTF("Hello, server");
dos.flush();
}
// 释放资源
dos.close();
socket.close();
}
}
服务端代码
public class ServerDemo {
public static void main(String[] args) throws IOException {
// 创建ServerSocket对象
ServerSocket ss = new ServerSocket(10000);
// 调用accept等待客户端连接
Socket accept = ss.accept();
// 获取输入流对象
InputStream is = accept.getInputStream();
// 把原始的字节输入流包装称数据输入流
DataInputStream dis = new DataInputStream(is);
while(true) {
try {
// 使用数据输入流读取客户端发送过来的消息
String rs = dis.readUTF();
System.out.println(rs);
// 获取客户端的IP地址
System.out.println(accept.getRemoteSocketAddress());
} catch(Exception e) {
System.out.println(socket.getRemoteSocketAddress() + "离线了");
socket.close();
break;
}
}
}
}