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

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

2个回答

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问