我已经用java创建了一个接受客户端连接的服务器。但我只能连接一个客户端
class Server extends Thread{
private void startServer() {
try{
ss=new ServerSocket(3000);
s=ss.accept();
DataRead d1=new DataRead();
d1.t.start();
}catch(Exception er){
er.printStackTrace();
}
}
}
最佳答案
你只能接受一个套接字。在您的jButton1ActionPerformed
中您有
s=ss.accept();
但是,当您单击 jButton1 按钮时,只会调用一次。如果您希望多个客户端能够连接,则需要不断调用 accept()
。
此外,请记住,每次调用 accept()
都会阻塞,直到客户端连接,然后返回一个代表该连接的新套接字。因此,如果您想支持多个客户端,则不应将 Socket
作为全局变量,而应将其包含在 DataRead
类的构造函数中,因此每个阅读器在唯一的套接字/连接/客户端上运行。
关于java - 套接字仅接受一个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11010348/