关于Socket设置连接超时
程序代码:
Socket socket = new Socket();
SocketAddress endpoint = new InetSocketAddress("192.168.30.23", 11);
long time = System.currentTimeMillis();
try {
socket.connect(endpoint, 2000);
} catch (Exception e) {
}
time = System.currentTimeMillis() - time;
System.out.println(time);
socket.close();
当要连接的计算机[192.168.30.23]在网路上不存在的时候:
JDK1.4:能够在规定的时间内抛出异常[java.net.SocketTimeoutException: connect timed out],结束阻塞。
JDK1.5:没有在规定时间内抛出异常,结束阻塞。
JDK1.6:能够在规定的时间内抛出异常[java.net.SocketTimeoutException: connect timed out],结束阻塞。
结论:我猜测会不会是JDK1.5的连接超时需要特殊的设置,或者是JDK1.5的实现有问题。
我的JDK1.5的版本如下:
java version "1.5.0-rc"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-rc-b63)
Java HotSpot(TM) Client VM (build 1.5.0-rc-b63, mixed mode, sharing)
求助:
不知道大家是否也遇到过类似的问题,或者看到过相关的文献对此种情况有说明。
Socket socket = new Socket();
SocketAddress endpoint = new InetSocketAddress("192.168.30.23", 11);
long time = System.currentTimeMillis();
try {
socket.connect(endpoint, 2000);
} catch (Exception e) {
}
time = System.currentTimeMillis() - time;
System.out.println(time);
socket.close();
当要连接的计算机[192.168.30.23]在网路上不存在的时候:
JDK1.4:能够在规定的时间内抛出异常[java.net.SocketTimeoutException: connect timed out],结束阻塞。
JDK1.5:没有在规定时间内抛出异常,结束阻塞。
JDK1.6:能够在规定的时间内抛出异常[java.net.SocketTimeoutException: connect timed out],结束阻塞。
结论:我猜测会不会是JDK1.5的连接超时需要特殊的设置,或者是JDK1.5的实现有问题。
我的JDK1.5的版本如下:
java version "1.5.0-rc"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-rc-b63)
Java HotSpot(TM) Client VM (build 1.5.0-rc-b63, mixed mode, sharing)
求助:
不知道大家是否也遇到过类似的问题,或者看到过相关的文献对此种情况有说明。
...全文
相关推荐
Java中Socket设置连接超时的代码分享
Java中Socket设置连接超时的代码分享 Java 中 Socket 设置连接超时是非常重要的,因为如果超时时长过长的话,在开发时会影响测试。
net-socket-connect:给定远程端口主机,设置一个低级net.Socket。 与回调和连接超时!
netSocketConnect是一个npm包,提供了一个函数用于建立低级别的net.Socket连接到指定的远程主机和端口。该函数接受端口号、主机地址、回调函数以及连接超时时间作为参数,并在连接成功
java socket长连接中解决read阻塞的3个办法
总结来说,Java Socket长连接中解决`read()`阻塞问题可以通过约定数据长度、设置超时时间或关闭连接等方式实现。具体选择哪种方法,需要根据实际应用的需求和限制来权衡。
windows下设置socket的connect超时
本文将详细介绍一种在Windows系统中设置socket连接超时的方法。### 一、基本概念在讲解如何设置socket连接超时之前,我们先来了解一下几个基本概念:1.
socket非阻塞超时设置
超时设置通常涉及到两个方面:连接超时和读/写超时。对于连接超时,我们可以利用`setsockopt()`函数和`SO_SNDTIMEO`或`SO_RCVTIMEO`选项来设置。


Java SE
