TCP连接:IP地址与端口,本地与对端相同
这是我们测试机上的netstat -an 看出来的一条连接记录:
tcp 0 0 10.10.12.150:29101 10.10.12.150:29101 ESTABLISHED
相当神奇,本地IP端口与对端的完全相同。
29101这个端口是这样的情况:A程序监听29101端口,B程序连接,A程序退出(不知道是正常退出还是异常退出),有时就会出现这种现象。
A与B在同一台机器上,机器环境:
Linux rhel12150 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
不知道有没有大侠见过这种情况,还请指教一下。
我已经测试过这种情况:
1. A.listen --> B.connect --> C = A.accept --> A.close
2. A.listen --> B.connect --> C = A.accept --> C.close
3. A.listen --> B.connect; kill -9 'A process'
都未能重现
但是这种现象还是比较频繁的出现
------解决方案--------------------百度:自连接。
------解决方案--------------------在断线自动重连的逻辑上加上几句代码,判断是否local和peer的端口是否一样,一样就重新连接