开发者社区> 问答> 正文

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

在开发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);处,但这时如果服务器关闭,,其将一直不间断地循环下去,请问如何判断服务器已经关闭了?

 

展开
收起
kun坤 2020-06-14 10:30:25 691 0
1 条回答
写回答
取消 提交回答
  • 设置超时######小弟菜鸟######麻烦能否具体一点呢?######服务器关闭, 抛出来的异常肯定是不一样的.######刚解决了问题了,服务器关闭后,is.read()方法返回-1######刚好做完这个内容,len = is.read(b);    len = -1的时候就是服务器退出的时候######哈哈,谢啦,刚才已经解决了,就是这么解决了!纠结了好久!

    2020-06-14 10:30:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载