首页 文章

在一个ServerSocket和几个套接字之间进行通信

提问于
浏览
0

我试图让我的ServerSocket与多个Socket通信,但我不知道如何,到目前为止我意识到调用serverSocket.accept()将返回一个套接字在服务器和第一个套接字之间进行通信,但是当第二个和之后正在尝试连接到ServerSocket,它让它们连接,但没有得到一个新的套接字与它们通信,所以,我如何与第二个Socket进行通信?

1 回答

  • 2

    简单地说,如果要同时与两个套接字通信,则需要生成一个新线程 .

    ServerSocket ss = new ServerSocket(... params ...);
    while(isRunning) {
        Socket socket = ss.accept();
        Runnable r = new SocketHandler(socket); // write the socket handler class
        Thread t = new Thread(r);
        t.start();
    }
    

    现在很明显,你可以做很多很多改进 . 最明显的是坚持r和/或t的引用,这样你就可以更好/更严格地控制它们,并且能够随意停止它们 . 但这些功能远远超出了这个问题的范围 .

相关问题