社区
网络编程
帖子详情
UDP做SOCKET程序,接受完数据后,缓存里的数据如何清除掉?
bladeboy
2002-12-27 05:04:41
双方都走UDP协议,当接收方收足数据后就通知发送方,
这是,发送方停止发送,接受方退出,考虑到延时,网络
通讯质量等问题,接受方退出后,他的缓存里还有数据,如何把
缓存里的数据清除呢(缓存当然指的是系统的网络缓存了\0)
...全文
856
6
打赏
收藏
UDP做SOCKET程序,接受完数据后,缓存里的数据如何清除掉?
双方都走UDP协议,当接收方收足数据后就通知发送方, 这是,发送方停止发送,接受方退出,考虑到延时,网络 通讯质量等问题,接受方退出后,他的缓存里还有数据,如何把 缓存里的数据清除呢(缓存当然指的是系统的网络缓存了\0)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guoxm
2003-01-06
打赏
举报
回复
确实不懂!
接收方退出后,跟接收方有关的所有资源都被系统释放,不存在你说的这个问题。
ansonchen
2003-01-06
打赏
举报
回复
好像设置一下sock属性就行了
everandforever
2003-01-06
打赏
举报
回复
使用setsockopt API函数把SO_SNDBUF和SO_RCVBUF这两个设置的值改为0关闭AFD.SYS的内部缓冲
??这样??
bladeboy
2003-01-06
打赏
举报
回复
注意,用的是UDP协议,还有一点,发送方是一个嵌入式系统,
而且TCP/IP协议堆栈是不完整的!如何解决呢?
门吹西风
2002-12-27
打赏
举报
回复
不太懂你在说什么?
彼得
2002-12-27
打赏
举报
回复
需要吗?
qt 主动
清除
udp
数据
的
缓存
qt 主动
清除
udp
数据
的
缓存
udp
通信
socket
关闭后,
缓存
不清空
udp
通信
socket
关闭后,
缓存
不清空
蓝易云 -
UDP
通信:解决
socket
连接关闭后缓冲内容未
清除
的问题
在
UDP
通信中,
数据
通常在内核的输入缓冲区中排队,直到应用
程序
进行读取。如果
socket
被关闭,那么缓冲区内的
数据
可能会被遗留下来,导致下次同一端点(IP地址和端口)建立新的
socket
连接时可能会收到旧的
数据
,从而造成
数据
混乱。当处理这类问题时,核心的策略在于清晰地认识到
UDP
的无连接特性以及可能随之而来的问题,并通过各种机制在应用层进行适当的管理和控制。如果一个
UDP
socket
接收的
数据
量很大,则可以考虑增加其缓冲区的大小,尽管这并不能解决
数据
残留的问题,但能够减少由于缓冲区溢出而导致的
数据
丢失。
HoRain云--
UDP
通信中关闭
Socket
后缓冲区
数据
的清理策略
通过上述方法,开发者可有效解决
UDP
通信中
socket
关闭后的缓冲区残留问题。建议根据具体场景组合使用多种策略,例如日常通信使用超时保护,关键操作时启用SO_LINGER强制清理。更多底层原理可参考Linux内核中net/ipv4/
udp
.c的
udp
_close()实现
Q
Udp
Socket
可以主动删除
缓存
的
数据
吗
Q
Udp
Socket
可以主动删除
缓存
的
数据
吗
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章