硬汉嵌入式论坛

 找回密码
 立即注册
查看: 870|回复: 4
收起左侧

[LwIP] LWIP read/recv函数读取问题

[复制链接]

18

主题

43

回帖

97

积分

初级会员

积分
97
发表于 2023-7-9 14:05:32 | 显示全部楼层 |阅读模式
坛友们,硬汉老哥,LWIP使用Socket方式写的服务器程序,发现 rd_num = read( clientfd1, tcp_svr1_rd, 4096 ); 函数单次最大只能返回1460字节数据,recv函数也是如此。
如果我要接受2000个字节的话,是不是就要自己写一个read函数,并且不能是阻塞接收,然后接收全了再返回?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-7-10 08:37:45 | 显示全部楼层
程序是不是没有使能自动分包处理,BSD Socket函数没有这种限制的。


下载.png
回复

使用道具 举报

18

主题

43

回帖

97

积分

初级会员

积分
97
 楼主| 发表于 2023-7-10 09:35:27 | 显示全部楼层
eric2013 发表于 2023-7-10 08:37
程序是不是没有使能自动分包处理,BSD Socket函数没有这种限制的。

好的,我再研究研究。
回复

使用道具 举报

18

主题

43

回帖

97

积分

初级会员

积分
97
 楼主| 发表于 2023-7-10 16:35:07 | 显示全部楼层
lwip程序自动分包处理,有相关宏吗?我好像没有找到.
我使用setsockopt函数设置了接收缓冲区大小,发现好像并没有什么用。
int buffer_len = 8192;
setoptret = setsockopt( clientfd, SOL_SOCKET, SO_RCVBUF, ( void * )&buffer_len, sizeof( int) );
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-7-11 09:18:43 | 显示全部楼层
Zachary唷 发表于 2023-7-10 16:35
lwip程序自动分包处理,有相关宏吗?我好像没有找到.
我使用setsockopt函数设置了接收缓冲区大小,发现好像 ...

类似这种的,你在lwip你们找下


123.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 20:52 , Processed in 0.173734 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表