gpt4 book ai didi

java - java中具有多个客户端的套接字服务器

转载 作者:行者123 更新时间:2023-12-03 11:52:23 25 4
gpt4 key购买 nike

我必须创建一个套接字服务器来监听多个客户端。假设有 6 个客户端同时连接到服务器,每个客户端同时向服务器发送一些命令。如果这些客户端每 1 秒向服务器发送一次消息,我如何处理来自服务器端 6 个客户端的这些消息以将其存储在表中并向每个客户端确认。

我如何处理来自客户端的这些输入。我是否必须创建 6 个线程来处理来自客户端的这些输入。

请给我一个解决这个问题的想法。

最佳答案

为每个客户端连接创建一个新线程,并不断对每个线程中的流进行阻塞读取以查找要处理的数据。

class Server {

ClientThread threads[];
int size;
ServerSocket serverSocket;
boolean active;

Server() throws Exception {
/* initialize connection */
active = true;
listen();
}

void listen() throws Exception {
while ( active ) {
Socket clientSocket = serverSocket.accept();
threads[ size++ ] = new ClientThread( clientSocket );
threads[ size - 1 ].start();
}
}
}

class ClientThread extends Thread {

OutputStream out;
InputStream in;
boolean active;

ClientThread( Socket clientSocket ) throws Exception {
out = clientSocket.getOutputStream();
in = clientSocket.getInputStream();
}

public void run() {
active = true;
while ( active ) {
listen();
}
}

private void listen() {
try {
int res = process( in.read() );
out.write( res );
} catch ( Exception e ) {}
}

private int process( int b ) {
return -1;
}
}

关于java - java中具有多个客户端的套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com