Androin学习笔记四十四:android下socket编程问题:服务器关闭时,客户端发送请求的异常处理

出处:http://gundumw100.iteye.com/blog/1117694

我用socket分别创建了一个服务器和一个客户端。 


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

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

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

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

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

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

解决方法: 
Java代码   收藏代码
  1. //global variables  
  2. public Socket socket = null;  
  3. private InetSocketAddress isa = null;  
  4. private static final String HOST = "10.13.81.26";  
  5. private static final String PORT = 5000;  
  6. private static final String TIMEOUT = 100;  
  7.   
  8. ///connect to server  
  9. try  
  10. {  
  11.    socket = new Socket();  
  12.    isa = new InetSocketAddress(HOST,PORT);  
  13.    socket.connect(isa,TIMEOUT);  
  14. }  
  15. catch(IOException e)  
  16. {  
  17.    e.printStackTrace();  
  18. }  
  19. finnally  
  20. {  
  21.    this.disconnectToServer();     
  22. }  
  23.   
  24. ///disconnect to server  
  25. try  
  26. {  
  27.    if(socket != null)  
  28.    {  
  29.    socket.close();  
  30.    }  
  31.    catch(IOException e)  
  32.    {  
  33.    e.printStackTrace();  
  34.    }  
  35. }  

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

现在先定义isa,通过isa跟socket链接 可以解决上面的问题 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值