0

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

4

1 回答 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 的引用,以便您可以更好/更严格地控​​制它们,并能够随意阻止它们。但是这些功能远远超出了这个问题的范围。

于 2012-09-13T22:07:08.863 回答