当客户端A连接到服务器B时,我们在服务器B上获得java.net.SocketTimeoutException
。不知道为什么。客户端正在向服务器发送数据,然后服务器抛出此异常。如何解决这个问题呢?
注意目前这只发生过一次。不确定这是否可重现。试图再次设置测试..
答案 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(或者您可以使用其中一个)在调用另一个必需函数之前使用connection
对server
进行测试,如果我得到SockectTimeoutException
调用此功能 - 只需向用户通知“弱互联网连接!”。