套接字仅接受一个客户端

时间:2012-06-13 07:47:13

标签: java sockets tcp server

我在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();
         }
        }                                        
  }

1 个答案:

答案 0 :(得分:2)

你只接受一个插座。在您的jButton1ActionPerformed

s=ss.accept();

但是,当您单击jButton1按钮时,只会调用一次。如果您希望多个客户端能够连接,则需要继续调用accept()

另外,请记住,每次调用accept()都会阻塞,直到客户端连接,然后返回套接字,代表该连接。因此,如果您想支持多个客户端,则不应将Socket作为全局变量,而应将其包含在DataRead类的构造函数中,以便每个读取器都在一个唯一的套接字上运行/连接/客户端。