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

android下socket编程有关问题:服务器关闭时,客户端发送请求的错误处理

2012-06-28 
android下socket编程问题:服务器关闭时,客户端发送请求的异常处理我用socket分别创建了一个服务器和一个客

android下socket编程问题:服务器关闭时,客户端发送请求的异常处理
我用socket分别创建了一个服务器和一个客户端。

当服务器程序运行时,客户端和服务器发送接收数据是OK的。

但是,如果服务器程序关闭以后,客户端仍然发送请求的话,会抛出一个IOException。但这个时间间隔很久,要三到四分钟才会抛出这个异常的。刚开始还以为是死机了呢!

我想在客户端做一个处理:如果服务器未开,要弹出一个提示框,然后结束当前程序。
请问怎么实现?

附创建客户端的部分代码:
Socket socket = new Socket("10.13.81.3",5000);

sendMsg(str);//这个是给服务器发送数据的接口
readMsg();//这个是服务器收到后 立即会发送数据给客户端,由客户端在这里接收数据

我就想在创建socket之后,判断是否connect,没有的话就弹出对话框,但是不成功.

解决方法:

//global variablespublic Socket socket = null;private InetSocketAddress isa = null;private static final String HOST = "10.13.81.26";private static final String PORT = 5000;private static final String TIMEOUT = 100;///connect to servertry{   socket = new Socket();   isa = new InetSocketAddress(HOST,PORT);   socket.connect(isa,TIMEOUT);}catch(IOException e){   e.printStackTrace();}finnally{   this.disconnectToServer();   }///disconnect to servertry{   if(socket != null)   {   socket.close();   }   catch(IOException e)   {   e.printStackTrace();   }}

之前链接socket直接用:
Socket socket = new Socket("10.13.81.26",5000);
socket.setTimeout(100);
这样,如果出现服务器端未开启时,即使设置了100ms超时时间,也会过很长时间才会捕捉到IOException

现在先定义isa,通过isa跟socket链接 可以解决上面的问题

热点排行