我正在开发一个android project.i使用ksoap2 lib.And我正在编写axis2 web服务 但我在客户端(android)上接受了这个错误
java.net.SocketTimeoutException:600000ms后无法连接到/10.0.2.2(端口8080):isConnected失败:ETIMEDOUT(连接超时)
谢谢..
答案 0 :(得分:1)
java.net.SocketTimeoutException
是java.io.IOException
的子类。它表示在套接字读取或接受时发生超时“。这意味着当两个阻塞操作(接受或读取)被阻塞一段时间(称为超时)时,会出现此异常。假设套接字配置为超时5秒。如果accept()或read()方法阻塞超过5秒,则抛出SocketTimeoutException,指定发生了超时。
为了避免这种例外: -
如果服务器端应用程序在您的控制之下,您应该尝试调整超时障碍,以使其在网络延迟方面更加灵活。您应该考虑这样做,尤其是当您的服务器应用程序将在远程计算机上运行时。除此之外,您可以检查网络中的任何延迟,路由器故障等。有效处理它的另一种方法是定义连接超时,然后使用try catch块处理它....
e.g,
HttpUrlConnection conn =(HttpURLConnection)url.openConnection(); conn.setConnectTimeout(time_in_millisec); //设置所需的超时(以毫秒为单位)
重要的是要注意抛出此异常后。套接字保持有效,因此您可以重试阻塞调用或使用有效套接字执行任何操作(甚至从catch块重新连接服务器)
链接