Java Socket创建需要更多时间

sri*_*ram 5 java sockets

我已经给出了Socket soc = new Socket(host,port);当主机启动并处于运行状态时,立即创建套接字.

但是当机器关闭或重新启动时,此线路需要大约40秒才能响应.我试过使用soc.setSoTimeout(timeout);但是在创建Socket之后使用了这一行.因此它没有多大帮助.

这似乎也是JAVA本身的一个错误. http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=5092063

我在这个链接中尝试了一些解决方法,比如在etc/hosts文件中添加机器端口和主机名.但它不起作用.由于在创建套接字时由于DNS解析而导致延迟,因此系统的响应时间受到严重影响.

任何帮助将不胜感激.

谢谢,老先生

dac*_*cwe 10

使用connect with timeout方法

// 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);
Run Code Online (Sandbox Code Playgroud)

  • 为了澄清,setSoTimeout()设置*read*timeout.带有3个参数的connect()方法允许您控制*connect*timeout:至少,它允许您从默认值中减少它. (2认同)