如何设置ServerSocket的时间限制以等待客户端套接字连接

时间:2014-02-21 12:44:01

标签: java sockets networking timer timertask

我使用套接字在java中进行编程,并面对下面提到的问题。

我编写了一个服务器程序,它向客户端发送一个纯文本。当我启动服务器时,服务器程序等待很长时间让客户端套接字连接。但是我希望服务器程序只等待一个指定时间为5分钟,然后报告用户客户端在指定时间内未连接。 我无法理解如何实现它。我已经通过了Timer和TimerTask类,但它有点令人困惑。

2 个答案:

答案 0 :(得分:4)

使用ServerSocket.setSoTimeout(int timeOut)等待客户端。如果您需要无限期等待,请将其设置为0

注意:Java doc说:

  

必须在进入阻止操作之前启用该选项   有效果。

答案 1 :(得分:1)

由于java API doc描述了' Socket.accept()': 抛出: IOException - 如果在等待连接时发生I / O错误。 SecurityException - 如果存在安全管理器且其checkAccept方法不允许该操作。 SocketTimeoutException - 如果之前使用setSoTimeout设置了超时并且已达到超时。

请参阅 Java API Doc Socket