|
SIM900A与电脑端之间建立TCP连接,为了维持这条连接,每一分钟发送一个心跳包,心跳包大小为30个字节
但是SIM900A发送包之后有时候要等待2分钟左右才能够回应SEND OK,这时候问题就出现了:
00:00.00 发送一个心跳包,TCP立马接收到了,但是SIM900A一直没有回应SEND OK
00:01.00 继续发送心跳包
00:02.00 继续发送心跳包
00:02.17 TCP端接收到上述两个心跳包的结合体(两个心跳包结合成一个了)
原因猜测:
由于SIM900A 没有接到00:00:00 心跳包的SEND OK,所以后续00:01:00与00:02:00两个心跳包被SIM900A合为一个发送出去了
目前来看,这个现象出现的概率很小,心跳包发送了将近2个小时才出现一次,想利用抓包工具来分析暂时也不可行,后来翻
看AT命令手册,发现了一条命令:AT+CIPTXISS;命令解释为:TCP数据过程中丢弃输入的AT命令,不知道是否跟这个问题有关
由于这种情况复现比较困难,不知道前辈们知道这个问题的根源以及解决方法不?
还有个疑问:SIM900A利用TCP发送数据出去之后,如果一直没有接收到SEND OK, 这时候重新发送是否会出问题??如果会的话
应该怎么解决?
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981
|