请教个问题,stm32f429+rtthread,板子作为tcp client连接pc端的tcp server.
程序里socket接收失败会关闭socket然后重新建立socket然后重连。
我一开始用的sscom串口助手这个软件,有tcp server功能。
里面有个“侦听”和“断开”两个按键。一旦点断开,socket就自动断了,板子程序能正常运行。再点击侦听,板子也能重新连上。
后来用了正点原子的网络调试助手,但这个只有“连接”和“关闭”两个按钮。连接后正常,收发没问题的。
但是点击“断开”后,板子那里没有显示socket断开。然后软件上再次点击“连接”,则我板子仍通讯不上...
请教下,是这个软件有问题?还是我板子程序有问题?
离线
又试了几次这个软件。
连接后,收发正常。
点击“断开”后,如果板子不再继续发送,则再次点击“连接”,则板子能正常发送。
点击“断开”后,如果板子继续发送,则软件收到一帧后就接收不到了,再次点击“连接”,板子发送,软件也接收不到。
无论那种情况,点击“断开”后,板子调试接口都没有打印出socket连接失败这条信息。如果关闭软件,则会有socket连接失败这个信息,再次重新打开软件并点击“连接”,板子会自动重连上去。
离线
试了将select结果打印出来,结果一旦连接上后,如果再停止连接,select这里仍返回是0...
离线
经群里有朋友试验,双开正点原子这个软件,一个当tcp server,也给当tcp client。
我也这样测试了一遍,发现,双方建立连接后:
1 server点“停止”按钮后,再点“连接”,期间client有发送数据,则server再次连接后,client发送,server收不到。
如果tcp server窗口关掉重开,或则tcp client ”停止“再”连接“,可以发送接收成功。
2 server点”停止“后,再点”连接“,期间client没有发送数据,则server再次”连接“后,client发送,server可以收到。
群里的朋友联系到了该软件制作者,说这版本软件是这样的:
写软件的人告诉我,他说他只断开了通讯,没有断开连接,
我没明白tcp server这个断开通讯是如何操作的?为何tcp client不知道server断开了?
软件制作者提供了最新版本的软件,双开该软件,一个做server,一个做client。
tcp server断开后,tcp client也会自动断开。
但是我用两个版本的软件交叉试验,无论哪个版本做server,另一个版本做client,server”关闭“后,client都不能自动断开...
离线