JAVANIO中服务器断开socketChannel的状态问题

时间:2008-08-29 17:01:54   来源:论坛整理  作者:  编辑:chinaitzhe
java.nio中服务器断开后socketChannel的状态(isConnected,isOpen,finishConnect)一直是true啊,按理说服务器断开后,这些状态都应该变成false了啊,很迷糊。。。。。
网友回复:你尝试读取或者发送数据看看?
网友回复:任何状态总要有程序改变才可以,所以一个单线程的程序,是不可能自动改变状态的。
网友回复:程序在正常情况下能读取和接收数据,但是在服务器断开的情况下就出现问题了。我这里启了三个线程,一个读消息,一个写消息,一个状态监控的线程,在状态监控的线程里面,根据socketChannel的状态(isConnected)来判断是否和服务器连接,连接上了服务器后,断开服务器后socketChannel的状态是不会改变的。
难道我要在读和写的线程里面加个状态的标志,只要读写出现异常就重连服务器吗?好像这个有点问题,出现的异常不一定是服务器断开的情况。
网友回复:
引用{0}aa

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

网友回复:[Quote 3 楼 java2000_net 的回复]任何状态总要有程序改变才可以,所以一个单线程的程序,是不可能自动改变状态的。[/Quote]
网友回复:
引用 3 楼 chenggm 的回复:
程序在正常情况下能读取和接收数据,但是在服务器断开的情况下就出现问题了。我这里启了三个线程,一个读消息,一个写消息,一个状态监控的线程,在状态监控的线程里面,根据socketChannel的状态(isConnected)来判断是否和服务器连接,连接上了服务器后,断开服务器后socketChannel的状态是不会改变的。
难道我要在读和写的线程里面加个状态的标志,只要读写出现异常就重连服务器吗?好像这个有点问题,出现的异常不一定是服务…
关键字:状态,服务器,问题,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面