编程语言C#,就是想测试一下tcp协议中的TIME_WAIT状态的等待时间。一台server,一台client,二者建立好连接后。client执行主动关闭,在client方用netstat命令发现此时端口对正处于FIN_WAIT_2状态,接着server端执行关闭(即调用close),在client再次用netstat命令发现此时端口对处于TIME_WAIT状态,接着重启client端程序连接server,连接成功。问题是此时端口正处于TIME_WAIT状态应该连接失败才是啊,为什么......,服务端也做了同样的测试,即服务端执行主动关闭,待其进入TIME_WAIT状态后,重启服务端程序,用正处于TIME_WAIT状态的端口连接client也成功。好像TIME_WAIT状态根本没有起到作用,有人遇到过这样的问题吗?是.net为我们做了一些工作的原因吗?谢谢大家了!!!(注:程序中绑定本机的监听端口都用7500,而连接远程主机时所用的本地端口都是强制分配相同的端口为7501,以便测试TIME_WAIT现象)

解决方案 »

  1.   

    C#里不是有封装好的TCPClient和TCPListen类吗?
      

  2.   

    谢谢gxingmin 现在在学习 我只想搞清楚上面出现的情形是怎么回事啊 大家帮帮忙啊
      

  3.   

    C#写Socket不难啊,看下MSDN上的Demo很快就能搞定的
      

  4.   

    简单的用socket是不难啊 我已用socket编写了一版基于tcp协议的通信协议程序 但重头来细细的学习tcp/ip协议栈,发现tcp协议远远没有想象的那么简单,要想编写出一版高质量的通信协议程序,不是很容易,以上问的问题是我在学习中碰到的问题,只想求个解答....