1

有没有办法检查到 ServerSocket 的传入连接,所以我的服务器在等待某人连接时不会停止。

我需要类似的东西

try {
if (server.thereisarequest()) {
Socket socket = server.accept();
}
}
4

3 回答 3

1

你确定要这个吗?呈现代码后,只有一个线程在等待。运行另一个处理接受的连接的线程,这样您的服务器就不会停止。您也可以使用 java 非阻塞异步 I/O(nio 和 nio2),但无论如何在后台都有一个线程在值班。

于 2012-09-06T18:27:30.107 回答
1

保持简单...使用无限 while 循环使服务器查找传入请求...大多数服务器的工作方式..

while (true) {

incoming = s.accept();  // incoming is of type Socket.                              

}
于 2012-09-06T18:19:42.547 回答
0

您可以创建一个新线程来接受连接。

那么你有2个选择:

  • 在新线程中处理套接字
  • 将套接字放入队列 ( ConcurrentLinkedQueue) 并从主线程检查它的队列。
于 2012-09-06T18:29:03.207 回答