嵌入式技术william hill官网
直播中

h1654155272.9717

9年用户 1261经验值
擅长:电源/新能源
私信 关注
[问答]

tcpclient_sample socket的recv函数一直阻塞是什么原因造成的

硬件中有一个EC200X的CAT1,按照tcpclient_sample的示例代码,调用recv函数,线程就被阻塞了,但是服务器没有数据下发时recv函数要超时退出,该如何处理呢,不然一直被阻塞在这儿,程序中没有使用lwip,用的是EC200X软件包at device,数据收发都已经正常实现,就是万一服务器没返回数据包时担心recv一直阻塞在这儿,求解

1.jpg

2.jpg

3.jpg

回帖(4)

刘超

2022-10-12 10:05:49
配置socket超时时间就行
举报

刘超

2022-10-12 10:06:18
  •   const struct timeval tv = {30, 0};
  •         setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
举报

h1654155272.9717

2022-10-12 10:08:55
使用的是SAL抽象层,没有用LWIP,配置socket的超时时间能够实现这个recv超时退出吗,该如何配置socket超时呢,有示例代码吗?
举报

h1654155272.9717

2022-10-12 10:09:04
或者设置recv非阻塞也可以,该如何设置recv为非阻塞呢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分