如何设置失败连接的套接字超时

时间:2014-12-03 09:04:15

标签: android sockets connection timeout

我试图连接到套接字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秒

1 个答案:

答案 0 :(得分:0)

使用no-args构造函数创建Socket,然后调用connect(endpoint, timeout);

Socket s = new Socket();
s.connect(endpoint, timeout);

请注意,与Javadoc相反,零并不意味着无穷大,它意味着平台默认(大约一分钟),并且您只能使用此技术来降低平台默认值,而不是增加平台默认值。 / p>