TCP -- 利用字节流实现网络中数据传输(2) -- 多线程处理多客户端请求
程序员文章站
2022-03-15 20:35:05
...
一、服务端代码
public class MyServer {
public static void main(String[] args) throws IOException {
// 1、准备服务 ip:port
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务启动成功!");
// 阻塞监听
while(true){
Socket socket = serverSocket.accept();
// 启用线程处理socket
new Thread(new ServerThread(socket)).start();
}
}
}
二、服务端处理socket的线程代码
public class ServerThread implements Runnable {
private Socket socket;
public ServerThread(Socket socket){
this.socket = socket;
}
@Override
public void run() {
// 处理socket
InputStream inputStream = null;
try {
inputStream = socket.getInputStream();
byte[] bytes = new byte[1024];
int length;
while ((length = inputStream.read(bytes)) != -1){
System.out.println("服务端收到:"+new String(bytes));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭流
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
三、客户端代码
同上一篇
上一篇: java例题:实现多客户聊天
下一篇: 剑指leetcode—最小K个数