我试图连接到套接字socket = new Socket(server , port);
,但如果服务器不可用,我需要设置连接失败的超时。默认超时为 3分钟 ,例如,如果我在 11:50:22 开始连接,则仅在 11:53:31 出现错误。查看日志:
12-03 11:50:22.519: E/InternetIntentService(23897): Start connecting to localhost:9999
12-03 11:53:31.869: W/System.err(23897): java.net.ConnectException: failed to connect to /localhost (port 9999): connect failed: ETIMEDOUT (Connection timed out)
如何将这 3 分钟更改为 10 秒?
使用 no-args 构造函数创建一个Socket
,然后调用 connect(endpoint, timeout);
:
Socket s = new Socket();
s.connect(endpoint, timeout);
请注意,与 Javadoc 相反,零并不意味着无穷大,它意味着平台默认值(大约一分钟),并且您只能使用此技术来减少平台默认值,而不是增加它。