2

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

1 回答 1

3

你只接受一个套接字。在你的jButton1ActionPerformed你有

s=ss.accept();

但这只会在您单击 jButton1 按钮时调用一次。accept()如果您想让多个客户端能够连接,您需要继续调用。

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

于 2012-06-13T07:57:49.143 回答