我试图让我的ServerSocket与多个Socket通信,但我不知道如何,到目前为止我意识到调用serverSocket.accept()将返回一个套接字在服务器和第一个套接字之间进行通信,但是当第二个和之后正在尝试连接到ServerSocket,它让它们连接,但没有得到一个新的套接字与它们通信,所以,我如何与第二个Socket进行通信?
简单地说,如果要同时与两个套接字通信,则需要生成一个新线程 .
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的引用,这样你就可以更好/更严格地控制它们,并且能够随意停止它们 . 但这些功能远远超出了这个问题的范围 .
1 回答
简单地说,如果要同时与两个套接字通信,则需要生成一个新线程 .
现在很明显,你可以做很多很多改进 . 最明显的是坚持r和/或t的引用,这样你就可以更好/更严格地控制它们,并且能够随意停止它们 . 但这些功能远远超出了这个问题的范围 .