tcp客户端和服务器端通讯后,服务器端关闭的问题

ydww 发布于 2013/03/05 13:59
阅读 953
收藏 0

在开发tcp客户端时,写了一个线程,接收服务器端传来的消息,代码如下

 while (isFlag()) {
    byte[] b = new byte[128];
    int temp = 0;
    int len = 0;
    try {
     is = cilent.getInputStream();// 接收tcp服务器端的输入流
     if (is != null) {
      System.out.println(11111);
      is.read(b);
      System.out.println(2222);
      String str = new String(b, "GB2312");
      Message msg=new Message();
      msg.obj=str;
      msg.what=StaticInfo.TCPCLIENTRECEIVE;
      uiHandler.sendMessage(msg);
     }
     
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     System.out.println("e-------------"+e);

    }
   }

由于客户端开了该线程一直在等待接收服务器端的小时,所以代码可以运行到上面的      System.out.println(11111); is.read(b);处,但这时如果服务器关闭,,其将一直不间断地循环下去,请问如何判断服务器已经关闭了?

 

加载中
0
chuangyu
chuangyu
设置超时
ydww
ydww
小弟菜鸟
ydww
ydww
麻烦能否具体一点呢?
0
JSON.org.cn
JSON.org.cn
服务器关闭, 抛出来的异常肯定是不一样的.
ydww
ydww
刚解决了问题了,服务器关闭后,is.read()方法返回-1
0
尐帥鱼
尐帥鱼
刚好做完这个内容,len = is.read(b);    len = -1的时候就是服务器退出的时候
ydww
ydww
哈哈,谢啦,刚才已经解决了,就是这么解决了!纠结了好久!
返回顶部
顶部