请教 @all 高手: 我的应用是双通道,如下: test1App: IP:192.168.0.20 发送端:port:9060 接受端:port:9050
test2App:
IP:192.168.0.21
发送端:port:9050
接受端:port:9060
原理:
test1App,test2App连接是双工的。
test1App 向test2App (192.168.0.21:9060)端口发送数据
test2App 接收到数据处理业务后向test1App (192.168.0.20:9050)端口发送数据(返回数据)
=====================================================
2端都是第一次启动时候:netstat 9050,9060信息如下:
alex[[[@alex-PC](/user/alex-PC)](/user/alex-PC)](/user/alex-PC):~$ netstat -ae|grep 9050
tcp 0 0 *:9050 : LISTEN alex 18957646
tcp 0 0 localhost:9050 localhost:59874 ESTABLISHED alex 18968912
tcp 0 0 localhost:59874 localhost:9050 ESTABLISHED alex 18961687
tcp 0 0 localhost:59873 localhost:9050 ESTABLISHED alex 18961686
tcp 0 0 localhost:9050 localhost:59873 ESTABLISHED alex 18968911
alex[[[@alex-PC](/user/alex-PC)](/user/alex-PC)](/user/alex-PC):~$ netstat -ae|grep 9060
tcp 0 0 *:9060 : LISTEN alex 18961682
tcp 0 0 localhost:47324 localhost:9060 ESTABLISHED alex 18968909
tcp 0 0 localhost:9060 localhost:47323 ESTABLISHED alex 18961688
tcp 0 0 localhost:9060 localhost:47324 ESTABLISHED alex 18961689
tcp 0 0 localhost:47323 localhost:9060 ESTABLISHED alex 18968908
udp 0 0 *:mdns : avahi 9060
也就是说双方都建立链接。当我重启一个端(如:test1App)后,netstat 信息如下:
alex[[[@alex-PC](/user/alex-PC)](/user/alex-PC)](/user/alex-PC):~$ netstat -ae|grep 9060
tcp 0 0 *:9060 : LISTEN alex 18961682
tcp 0 0 localhost:9060 localhost:47381 ESTABLISHED alex 18975280
tcp 0 0 localhost:47380 localhost:9060 ESTABLISHED alex 18976415
tcp 0 0 localhost:9060 localhost:47380 ESTABLISHED alex 18975279
tcp 0 0 localhost:47381 localhost:9060 ESTABLISHED alex 18976416
udp 0 0 *:mdns : avahi 9060
alex[[[@alex-PC](/user/alex-PC)](/user/alex-PC)](/user/alex-PC):~$ netstat -ae|grep 9050 tcp 0 0 *:9050 : LISTEN alex 18976408
也就是说没有重启那端跟刚重启的这端没有成功建立socket 链接。 9050这端接受不到9060发送过来的数据。
这是为什么呢???? 请高人指点。
连接池用的是:generic-pool 模块