java.nio中服务器断开后socketChannel的状态(isConnected,isOpen,finishConnect)一直是true啊,按理说服务器断开后,这些状态都应该变成false了啊,很迷糊。。

解决方案 »

  1.   

    程序在正常情况下能读取和接收数据,但是在服务器断开的情况下就出现问题了。我这里启了三个线程,一个读消息,一个写消息,一个状态监控的线程,在状态监控的线程里面,根据socketChannel的状态(isConnected)来判断是否和服务器连接,连接上了服务器后,断开服务器后socketChannel的状态是不会改变的。
    难道我要在读和写的线程里面加个状态的标志,只要读写出现异常就重连服务器吗?好像这个有点问题,出现的异常不一定是服务器断开的情况。
      

  2.   

    [Quote 3 楼 java2000_net 的回复]任何状态总要有程序改变才可以,所以一个单线程的程序,是不可能自动改变状态的。[/Quote]