我在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();
}
}
}
答案 0 :(得分:2)
你只接受一个插座。在您的jButton1ActionPerformed
中
s=ss.accept();
但是,当您单击jButton1按钮时,只会调用一次。如果您希望多个客户端能够连接,则需要继续调用accept()
。
另外,请记住,每次调用accept()
都会阻塞,直到客户端连接,然后返回新套接字,代表该连接。因此,如果您想支持多个客户端,则不应将Socket
作为全局变量,而应将其包含在DataRead
类的构造函数中,以便每个读取器都在一个唯一的套接字上运行/连接/客户端。