在Java中创建套接字时:
new Socket(host, port);
套接字构造函数将在返回之前尝试连接到 host:port 。在Windows上,对于无法访问的主机,此操作几乎立即失败,但是对于Linux,套接字可能最多需要5分钟才能超时。
我知道,如果我可以控制创建套接字,则可以执行以下操作:
Socket s = new Socket(); s.bind(..); s.connect(.., timeout);
但我希望操作系统使用合理的默认值。有没有办法在Linux上更改此设置?
谢谢
我想你要/proc/sys/net/ipv4/tcp_syn_retries。默认值通常是5或6,大约需要3分钟。
/proc/sys/net/ipv4/tcp_syn_retries
请注意,这些是系统范围的。