使用stm32开发板利用lwip协议做TCP客户端,怎样检测发出的数据是不是被PC服务端收到?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用stm32开发板利用lwip协议做TCP客户端,怎样检测发出的数据是不是被PC服务端收到?相关的知识,希望对你有一定的参考价值。

试了一下,,用ETH_ReadPHYRegistert函数能够检测到网线中断,但对于网线物理连接正常,而线路不太好的情况下,数据是发送 不到服务端的,单步追踪了一些,tcp_connect函数的返回值是OK,pcb->state = ESTABLISHED
但是tcp_write 其实没有 被调用!!!怎样检测TCP通讯中断呢?

参考技术A 使用wireshark抓包,看PC端是否收到,LwIP内部调试可启用LwIP Debug代码,打印内部执行状态追问

找到点思路,在tcp.h中tcp_process()函数中有调用回调函数的地方,因为只有网络连接建立起来才会通讯,才能发送接收数据。所以可以在这个函数里设置标志位,通过检测标志位的变化,就可以知道连接状况了,但这个反应比主函数有延迟,所以需要一定时间间隔后再检测。这是我的思路,还在尝试中。

基于STM32单片机的LwIP协议LwIP 的TCP_client 上传数据温度电压数据到网络调试助手

以上是关于使用stm32开发板利用lwip协议做TCP客户端,怎样检测发出的数据是不是被PC服务端收到?的主要内容,如果未能解决你的问题,请参考以下文章

STM32入门开发: LWIP网络协议栈移植(网卡采用DM9000)

基于STM32单片机的LwIP协议LwIP 的TCP_client 上传数据温度电压数据到网络调试助手

基于STM32单片机的LwIP协议LwIP 的TCP_client 上传数据温度电压数据到网络调试助手

《嵌入式 - Lwip开发指南》第3章 移植LWIP(无系统)

《嵌入式 - Lwip开发指南》第3章 移植LWIP(无系统)

STM32F107VC 使用 TCP 运行 FreeRTOS