我给了Socket soc = new Socket(host,port);
现在,当主机启动并处于运行状态时,套接字将立即创建。
但是,当机器关闭或重新启动时,该行大约需要 40 秒才能响应。我尝试使用soc.setSoTimeout(timeout);
但这行是在创建Socket之后使用的。因此它没有多大帮助。
而且这似乎是JAVA本身的一个错误。https://bugs.java.com/bugdatabase/view_bug;:YfiG?bug_id=5092063 https://bugs.java.com/bugdatabase/view_bug;:YfiG?bug_id=5092063
我尝试了此链接中给出的一些解决方法,例如在 etc/hosts 文件中添加计算机端口和主机名。但这不起作用。由于套接字创建时 DNS 解析造成的延迟,系统的响应时间受到严重影响。
任何帮助将不胜感激。
谢谢,
锶
Use the 连接超时 http://download.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html#connect%28java.net.SocketAddress,%20int%29 method
// create an unconnected socket
Socket soc = new Socket();
soc.setSoTimeout(SO_TIMEOUT); // if you like
// connect (with timeout)
soc.connect(new InetSocketAddress(host, port), CONNECT_TIMEOUT);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)