调用服务器套接字的问题接受带有无限超时的方法

时间:2012-03-07 14:39:26

标签: java multithreading sockets serversocket

我在我身边创建了一个服务器套接字。我不知道客户什么时候和我联系。

在我的应用程序中调用serverSocket.accept()而不设置任何套接字超时将解决我在任何时候接受客户端的问题。我在一个单独的线程中这样做,所以这不会阻止我的应用程序的另一部分。

我担心的是,因为accept()阻塞直到它从客户端接到一个呼叫,这不会消耗任何资源,可能就像我从客户端程序接到一个星期的呼叫一样。

是否有其他方式接受客户端连接。我没有关于客户端何时调用套接字连接的任何信息,除了它在某个时候调用。

1 个答案:

答案 0 :(得分:1)

在另一个线程上调用accept没有问题。线程将在accept的调用中被阻止,并且在入站连接之前,操作系统不会安排该线程。实际上,如果整个星期都没有连接,那么在此期间你的线程将无法在CPU上运行。

因此,它不会消耗任何CPU资源和仅占用一点内存。