siluhuayuwenjuan
siluhuayuwenjuan
2011-07-28 12:32
浏览 255
已采纳

急,mina服务器关闭后,客户端获取服务器输出,catch不到异常

mina服务器session.close(),客户端获取服务器输出,用的是socket.getInputStream().read(new byte[1]); 客户端有时能扑捉到异常,有时候扑捉不到,这是为什么呢,有哪位高手知道,:D

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • mavlarn
    mavlarn 2011-08-01 13:51
    已采纳

    tcp连接关闭的问题比较麻烦,连接断了以后,也可能是会收到一个可读的信号,但是没有数据,实际上就是连接关闭的信号。这个我也不是很清楚。(你在从流里面读的时候,读到的可能不是什么数据,可能就是上面说的这种情况)
    我的做法是定义一种数据的格式,比如json格式,或者其他自定义的格式,这样读的时候,只要格式不对,或者没读到数据,就不处理。

    点赞 评论
  • mavlarn
    mavlarn 2011-07-28 17:33

    没有异常的时候读到东西了吗?可能跟缓存有关,不是说你一关闭session,那边就读不到,tcp的连接也会有等待关闭的时候,java里面的流可能有缓存。

    点赞 评论

相关推荐