我正在使用 MK64FN1M0VMD12,并通过在 FreeRTOS 上运行的 LWIP 从服务器读取数据。
LWIP版本:2.2.0
FreeRTOS内核版本:10.2.0
服务器每隔一秒通过TCP向客户端发送数据。当数据以大约100bps的速率传输时,它可以长时间工作。
但是当速度大于200bps时就会超时,此时lwip_read会一直超时,重新连接TCP总是失败,直到你重启系统。
有时只能接收2000字节超时,有时能接收100000字节以上超时。
代码大致是这样的:
socket = socket(AF_INET, SOCK_STREAM, 0);
connect(socket, (struct sockaddr *)&addr, sizeof(struct sockaddr));
setsockopt(socket, SOL_SOCKET, SO_RCV
tiMEO, &tv, sizeof(tv));
/* write to the server to request sending messages to client every second */
write(socket, buf, len);
/* */
while(1)
{
read(socket, buf, BUF_SIZE);
}问题最可能的原因是什么?