Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
LWIP
10
LWIP tcp server连续接收数据 , 延迟 248ms
发布于 2022-08-26 17:59:17 浏览:735
订阅该版
使用 tcpserver 或者 netserver 软件包, 开启tcp 服务器后, 使用select 函数进行判断接收, 实际测试发现, 如果tcp 接收到数据后, 立即发送回去, 那么没有问题, 如果只接收,不进行网络发送, 那么电脑那边发送到单片机这边, 会产生248ms 的延迟 测试代码如下 ``` //netserver tcp 接收回调函数 static int netserver_readable_cb(ns_session_t *ns, void *data, int sz) { int ret = 0; can_write(data, sz); // ret = netserver_write(ns, data, sz); // 此行取消注释(内部调用 send()), 可以立即接收到下一个数据包 // 电脑端以50ms 周期发送, 此回调函数在没有上一行发送函数的情况下, 250ms 触发一次,有上述一行发送,则可以正常触发 return ret; } ``` ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220826/3545fe3d728a5ba2c2f77dc7874e9628.png.webp) 进一步测试, 发现时间卡在了 select 函数里, 不是特别了解运行机制, 上网查阅资料, 发现有短数据包优化算法 nagle 算法, 会对linux 造成 20ms 的数据延迟. 于是添加如下代码, 在 server.socket , 与connent.socket ``` int option = 1; // 关闭短包优化 // 实际测试无效果 setsockopt(mgr->listener->socket, IPPROTO_TCP, TCP_NODELAY, (const void *)&option, sizeof(int)); ``` 测试无效果, 有没有遇到同样问题的朋友? 虽然接到消息后立即就回就没事, 但是消息回复在其他线程里,有没有其他方法?
查看更多
1
个回答
默认排序
按发布时间排序
aozima
2022-08-26
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
- `TCP_NODELAY`主要对发送有效 - `TCP_NODELAY`应该设在`connent.socket`上,`server.socket`不需要 - 如果是select引起接收延迟,可以试下不用select,直接用阻塞接收看看。 - 如果不用select没延迟,可以试着调整下应用程序与协议栈线程的优先级关系。
撰写答案
登录
注册新账号
关注者
0
被浏览
735
关于作者
kid
这家伙很懒,什么也没写!
提问
7
回答
54
被采纳
5
关注TA
发私信
相关问题
1
RT-THREAD在STM32H747平台上移植lwip
2
{lwip}使能RT_LWIP_DHCP时可以获取到ip
3
stm32f103 LWIP 2.0.2 TCP收发问题
4
lwip2.1不重启修改IP
5
关于网络协议栈的测试
6
可否将LWIP升级到2.1.2 和 2.0.3?
7
socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
8
tcpclient 插拔网线问题?
9
两个tcpclient同时通讯可以吗?
10
SO_BINDTODEVICE 未定义该如何解决
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
freemodbus主机在freertos的适配,参考rtthread例程
2
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
3
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
4
RT-Thread EtherKit开源以太网硬件正式发布
5
还在担心bsp不好维护吗?快使用yml管理主线bsp
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部