如何调试SocketTimeoutException?

时间:2011-07-11 12:33:06

标签: java debugging sockets socket-timeout-exception

当客户端A连接到服务器B时,我们在服务器B上获得java.net.SocketTimeoutException。不知道为什么。客户端正在向服务器发送数据,然后服务器抛出此异常。如何解决这个问题呢?

注意目前这只发生过一次。不确定这是否可重现。试图再次设置测试..

2 个答案:

答案 0 :(得分:0)

在超时期限内没有数据到达接收方。这就是它的意思。调试它意味着找出您认为发送的数据未被发送的原因。例如,缺少flush()。

答案 1 :(得分:0)

当我的用户使用3G或2G网络时,我遇到了同样的问题。这意味着,由于互联网信号较弱,您向服务器发送请求,无法建立连接。您可以增加连接的超时

URLConnection connection;
int timeout = 30 * 1000; 
connection.setConnectTimeout(timeout);
connection.setReadTimeout(timeout);

但是如果你有weaaak weeeaaaak internet connection,超时对你没有帮助。 我刚刚在WebService中创建了1个testFunction(或者您可以使用其中一个)在调用另一个必需函数之前使用connectionserver进行测试,如果我得到SockectTimeoutException调用此功能 - 只需向用户通知“弱互联网连接!”