首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

socket 连接超时?该怎么处理

2012-05-27 
socket 连接超时??Java codepublic ClientSocketEx(){try{clientSocketnew Socket()clientSocket.setSoT

socket 连接超时??

Java code
    public ClientSocketEx(){        try        {            clientSocket=new Socket();            clientSocket.setSoTimeout(10000);                        SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");            String datetime = tempDate.format(new java.util.Date());                                    Log.e("sk",datetime+"__1");             SocketAddress socketAddress = new InetSocketAddress("124.XXX.86.XX",10000); //获取sockaddress对象             clientSocket.connect(socketAddress,10000);                                     new PutThread(clientSocket);            new GetThread(clientSocket);                      }        catch(UnknownHostException che)        {            try            {                clientSocket.close();                Log.e("sk", "UnknownHostException");            }            catch(IOException ex)            {                            }        }        catch(IOException e)        {            try            {                clientSocket.close();                Log.e("sk", e.getClass().getName());                Log.e("sk", e.getMessage());                SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                String datetime2 = tempDate.format(new java.util.Date());                Log.e("sk",datetime2+"__2");            }            catch(IOException ex)            {                            }        }





05-15 23:31:54.345: ERROR/sk(5655): 2012-05-15 23:31:54__1
05-15 23:31:55.845: ERROR/sk(5655): java.net.SocketTimeoutException
05-15 23:31:55.845: ERROR/sk(5655): Connection timed out
05-15 23:31:55.855: ERROR/sk(5655): 2012-05-15 23:31:55__2


我就不明白,明明白白设了10000=10秒的超时时间.怎么就1秒中就说timeout了??

另外这种异常,也不是每次都报,一般是3,4次报一次!

[解决办法]
//试下这种
Socket socket = new Socket();
socket.connect(new InetSocketAddress(socketIp, socketport),
1000 * 10);//10秒
[解决办法]
检查服务器端是否正常;

将:
SocketAddress socketAddress = new InetSocketAddress("124.XXX.86.XX",10000); //获取sockaddress对象
 
clientSocket.connect(socketAddress,10000);
去掉;
改成直接new Socket(ipAddress, Host);

[解决办法]
可能是其它原因导致的错误提示,请断点调试一下。
[解决办法]
如果代码调式无错的话,剩下就是网络与服务器端问题了!!!

热点排行