五、TCP C/S:连接建立后,主机崩溃后重启

本文介绍了一种使用树莓派和PC机进行TCP通信的测试案例,详细记录了测试步骤及现象,包括正常通信流程与服务器异常重启后的客户端表现。

1. 程序源码

http://my.oschina.net/lowkey2046/blog/693852

2. 测试方法

需要使用两台主机进行测试

a. 在树莓派上(192.168.1.24)上启动服务器进程

$ ./tcpserv01 &
[1] 1782

b. 在 PC 机上启动客户端进程,输入 hello world

测试客户端能接收到服务器数据

$ ./tcpcli01 192.168.1.24
hello world
hello world

c. 断开树莓派网络,重启树莓派系统和服务器进程,再将树莓派重新连接到网络中,客户端再发送数据

hello?
str_cli: server terminated prematurely

客户端 read 立即出错返回。

3. wireshark 截图

输入图片说明

当服务器主机崩溃后重启,它的 TCP 丢失了崩溃前的所有连接信息,因此服务器 TCP 对于所收到的来自客户端的数据分节响应以一个 RST。

参考资料

《UNP》

转载于:https://my.oschina.net/lowkey2046/blog/704424

6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 9 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 13 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 14 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 15 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 16 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 16 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 17 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 17 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Up 18 seconds 7091/tcp, 0.0.0.0:7099->7099/tcp, :::7099->7099/tcp, 8091/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Exited (255) Less than a second ago seata [root@localhost ~]# docker ps -a | grep seata 6a888385c3c1 seataio/seata-server:1.5.2 "java -Djava.securit…" 5 minutes ago Exited (255) Less than a second ago seata 只能运行一段时间
03-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值