在做TCP客户端开发的过程中,大家可能都会遇到服务端不稳定性造成我们客户端发生错误的情况,比如因为网络不好造成Socket连接断开,或者服务端主动关闭了你的连接请求。
那么遇到这种情况你的程序该怎么处理,对,应该做好断开自动重连机制,而且要保证自动重连的及时性,以及资源消耗率、CPU占用率都良好。
如果你想好了方案,改好了代码,怎么测试呢?
于是我写了个测试工具,用于模拟服务端极端情况,以帮助我们完善我们的客户端。
程序界面:
程序功能说明:
1.本工具实现TCP服务端,可对接任意TCP客户端连接并直接显示十六进制数据包。 2.实现了CMPP2.0、CMPP3.0、SGIP协议的服务端简单应答,可用于对此三类客户端进行并发测试,客户端可用任意参数连接,本工具不验证参数准确性。 3.可自行选择是否自动回复应答包。 4.可启动自动每隔N秒断开M秒极限环境测试。 |
因为我自己接触三大运营商短信协议比较多,所以顺带实现了CMPP2.0、CMPP3.0、SGIP协议的解析,以帮助测试这三类客户端。
客户端需要做好断开自动重连,首先要及时,不能服务端断开一个小时了你再重连 那有什么用呢,然后不能频繁不间断重连,比如服务端确实长时间断开了,那你就要做一下重连减速控制,比方从每隔5s逐渐增加间隔时间,直至报警提醒人工干预。
这是我本地模拟用CMPP2.0客户端进行群发压力测试的截图:
工具下载: