2012-09-06 43 views
1

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

我需要这样的东西

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

为什么?只需在单独的线程中运行正常的接受循环。 – EJP

回答

1

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

1

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

while (true) { 

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

} 
+0

和程序将继续前进,否则它会停止并等待请求? – Qualphey

+1

它一直在等待请求.....'现在你需要把从s.accept()获得的客户端对象放到另一个单独的线程中进行处理,而服务器一直在等待另一个客户端......' –

+0

它保留在等待请求,但服务器仍在工作?我的意思是它仍然会在等待传入请求时在每一帧上打印文本? – Qualphey

0

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

然后,你有两个选择:

  • 过程中一个新的线程
  • 插座把插座在队列(ConcurrentLinkedQueue),并检查它从你的主线程队列。