gpt4 book ai didi

c - LwIP 上的 SO_RCVTIMEO 选项

转载 作者:行者123 更新时间:2023-11-30 17:28:10 25 4
gpt4 key购买 nike

我正在将 LwIP 与 FreeRTOS 结合使用。我的项目基于此 URL FreeRTOS with LwIP project 上的示例。我还将 LPC1769 与 LPCXpresso 版本 6.CMSIS 版本 2 一起使用。

我正在使用 LwIP 通过 UDP 套接字传输 MP3 文件。传输速度很快,但问题是有时 lwip_recvfrom 在数千次操作后会阻塞。我永远看不到超时条件。我想我做错了什么。

以下步骤是:

int socket = lwip_socket(AF_INET, SOCK_DGRAM, 0);

if(lwip_setsockopt( socket,
SOL_SOCKET,
SO_RCVTIMEO,
(int)timeoutTimeInMiliSeconds,
sizeof(int)) == -1)
{
return -1;
}
....
if(lwip_bind(protocolConfig.socket,
(struct sockaddr *)&sLocalAddr,
sizeof(sLocalAddr)) == -1)
{
return -1;
}
bytesWritten = lwip_sendto( socket,
transmitBuffer,
transmitBufferIndex,
0,
(struct sockaddr *)&sDestAddr,
sizeof(sDestAddr));
.....
bytesReceived = lwip_recvfrom( socket,
receptionBuffer,
receptionBufferSize,
0,
NULL,
NULL);

if(bytesReceived < 0)
{
//Error stuff, this condition is never reached.
}

有人知道这里出了什么问题吗?

最佳答案

问题已解决。

lwip_setsockopt 有这个原型(prototype):

int lwip_setsockopt(int socket, int level, int option_name,const void *option_value, socklen_t option_len);

我通过复制 option_value 的值来发送。

超时工作正常。

关于c - LwIP 上的 SO_RCVTIMEO 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com