qq774524817 发表于 2018-9-7 00:30:34

STM32H743 SOCKET堵塞方式设置为非堵塞方式


大家好,
   我们现在用STM32H743ZIT6,在调试FreeRTOS + LWIP,发现SOCKET为堵塞方式,有什么办法能将socket设置为非堵塞方式?用setsockopt函数设置,已经测试过了,不起作用;大神们帮看下,多谢

feixiang20 发表于 2018-9-7 23:05:23

本帖最后由 feixiang20 于 2018-9-7 23:06 编辑

我只知道如下:

windows和linux平台上accept()函数返回的socekt也是阻塞的,linux另外提供了一个accept4()函数,可以直接将返回的socket设置为非阻塞模式

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

int accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags);

只要将accept4()最后一个参数flags设置成SOCK_NONBLOCK即可。

tanic 发表于 2018-9-12 15:26:35

lwip官方手册写的清清楚楚明明白白,不建议在实际项目中使用 socket API。其实自己多开几个线程就能解决了阻塞问题

xiaojie0513 发表于 2018-9-12 21:43:50

自己重写吧??别人提供的不适合自己,,那你就自己尝试用自己的思路重写呗,,,,它阻塞是有时间的,你改为0试试?,,0就是没阻塞时间啊
页: [1]
查看完整版本: STM32H743 SOCKET堵塞方式设置为非堵塞方式