检查到ServerSocket的传入连接

时间:2012-09-06 18:07:57

标签: java tcp

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

我需要像

这样的东西
try {
if (server.thereisarequest()) {
Socket socket = server.accept();
}
}

3 个答案:

答案 0 :(得分:1)

保持简单...使用无限 while 循环让服务器查找传入请求 ...这就是大多数服务器的工作原理..

while (true) {

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

}

答案 1 :(得分:1)

你确定要这个吗?显示代码后,只有一个线程正在等待。运行另一个处理已接受连接的线程,以便服务器不会停止。 你也可以使用java非阻塞异步I / O(nio和nio2),但是在后台仍然有一个线程值班。

答案 2 :(得分:0)

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

然后你有两个选择:

  • 以新线程处理套接字
  • 将套接字放入队列(ConcurrentLinkedQueue)并从主线程中检查它的队列。