学习RT-thread已经有一段时间了,目前使用的硬件中有一个EC200S的4G模组,AT指令调试也挺顺利的,但是遇到一个很纠结的问题就是TCP数据接收一直是阻塞的,按照教程使用SAL套接字,按照tcpclient_sample的示例代码,发现只要调用recv函数,线程就被阻塞了,也尝试过使用超时接收和select,但是效果不理想。在以往的项目中,服务器往往会不定时的下发命令,设备端也要定时上报数据,如何使用RT-thread实现这样的功能?希望有经验的朋友们分享一下经验,十分感谢!
查看更多
不知道官方的这个教程是否是你需要的https://www.rt-thread.org/document/site/application-note/components/network/an0019-tcpclient-socket/
这个看了,但是没有走通。不知道有没有更详细的办法。
接收函数的参数flag传入MSG_DONTWAIT试试
rlen = recvfrom(fd, message, sizeof(message), MSG_DONTWAIT, (struct sockaddr *)&client_addr, (socklen_t *)&addrlen);
发布 问题
分享 好友
手机 浏览
回到 顶部