请问,有没有关于socket重新连接的代码,今天我试了好多次都没有解决这个问题我的实验如下:
1. 我想在连接后如果在一段时间内收不到数据就判断连接是否断开,判断的方式是直接把服务端停掉,但是用了isClosed()和isConnect()方法都不能测得,即使我把服务端停掉,isClosed()返回的依然是false, isConnect()方法返回的依然是true;
2. 上面判断连接是否断开的想法失败后我想另一个办法就是不管连接是否断开,如果一段时间内没有收到数据就把socket进行重新连接,但是重新连接后(如果服务器本身没有停掉,只是隔时间长没有发数据)就不能再得到服务器端的数据。请问谁有这方面的代码,或者想法,谢谢

解决方案 »

  1.   

    看不太明白.
    如果一段时间内客户端没数据到服务器来,就把这个客户端的连接断开.是不是这样啊?
    看你的说明,好像你把ServerSocket给关了吧?
    而与客户的连接还在,所以那二个方法返回的不是你预想的值.
      

  2.   

     ServerSocket的这个方法void setSoTimeout(int timeout) 
     启用/禁用带有指定超时值,以毫秒为单位。 
      

  3.   

    每次断开由自己控制,若断开会抛出EOF之类的异常,然后在处理时  重新连接就行了吧
      

  4.   

    我觉得两个方面吧
    一个是判断超时,超时了就关了这个socket
    一个是捕获异常,主要是由于客户端断开时的异常
    我目前用的这两个方法期待更好的回答