Kev*_*vin 9 java sockets linux timeout connect
在Java中创建Socket时:
new Socket(host, port);
Run Code Online (Sandbox Code Playgroud)
Socket构造函数将在返回之前尝试连接到host:port.在Windows上,对于无法访问的主机,这几乎立即失败,但对于Linux,Socket最多可能需要5分钟才能超时.
我知道如果我可以控制创建套接字,我可以这样做:
Socket s = new Socket();
s.bind(..);
s.connect(.., timeout);
Run Code Online (Sandbox Code Playgroud)
但我宁愿让操作系统使用合理的默认值.有没有办法在Linux上更改此设置?
谢谢
我想你想要的/proc/sys/net/ipv4/tcp_syn_retries.默认值通常为5或6,大约3分钟.
请注意,这些是系统范围的.
我建议不要更改操作系统设置,因为它可能会意外影响其他应用程序。该Socket.setSoTimeout()方法可能也会对您有所帮助。