在写TCP通信程序时,Java或者C++都会遇到端口无法迅速释放的问题,即在关闭时可能会出现Close_Wait, Time_Wait, Fin_wait_1, Fin_wait_1这四种状态,但是如何修正或者避免这些问题呢???始终没有找到方法。希望大牛们帮帮小弟

解决方案 »

  1.   

    2楼
    但是确实存在这个问题啊,比如一个apache的web服务器,如果有很多client接进来,但是关闭的时候,许多端口都成了close_wait,那这个服务器很快就会崩溃了啊
      

  2.   

    我当初做socket的时候也涉及过这四种状态的问题
    感觉和我理想中的端口状态不一致
    找了一些资料,,貌似最后问题不是从那里解决的
    不过java好像是可以监测到其中的几个状态,true或false来表示
      

  3.   

    你用集合把那个CLIENT给MOVE掉   .在扑捉找断开异常的时候就把他给MOVE就可以了吧
      

  4.   

    TCP/IP协议就是这么设计的。建立连接的时候有三路握手协议,断开连接的时候也得经历那几个状态,网络传输毕竟不是可靠服务,并且还有时延,这样做只不过是TCP层实现可靠通信的一种手段,如果你使用UDP的话,就不会有这个问题了。