发布网友 发布时间:2022-04-22 08:27
共1个回答
热心网友 时间:2022-06-18 15:16
使用jdk中的setSoTimeout(int timeout) 方法,以毫秒为单位。 参考代码:SocketAddress address = new InetSocketAddress("192.168.0.104", 8888);ServerSocket s = new ServerSocket(); s.bind(address); Socket socket = s.accept();socket.setSoTimeout(5 * 1000); //5秒钟 将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。 如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket 仍旧有效。选项必须在进入阻塞操作前被启用才能生效。 另外:超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。