当LwIP的netconn_accept()
或netconn_recv()
函数被调用,如果我们使用的是RTOS,它会阻塞线程和等待,直到超时连接或永远取决于LWIP_SO_RCVTIME0
设置。超时时间等于SYS_ARCH_TIMEOUT
。LWIP + RTOS - 如何避免netconn永远阻塞线程?
SYS_ARCH_TIMEOUT
被定义为0xffffffff在核心包含LwIP堆栈的一部分,所以我认为它不会被改变。
实际上,我希望它检查是否有连接,如果不是则继续线程。但是,如果我打电话给netconn_accept()
,它只会阻塞线程并永远等待(或很长一段时间)...我不想更改SYS_ARCH_TIMEOUT
的定义值,因为我需要不同的超时时间。 。
这样做的好方法是什么?谢谢。
我不知道LWIP的细节,但它有一个非阻塞套接字的概念或“选择”类功能? –
lwIP中的BSD套接字实现实际上使用了OP可能无法承受的额外空间。 RAM的64kb不是一切的大空间。 –
@ViktorLatypov你怎么知道我只有64kb RAM?我认识你吗...? – eepty