linux socket buffer满了怎么办?

我在这儿等你 2013-08-10 04:59:03
嵌入设设备和PC使用UDP通信,以太网发送数据很快,接收端的处理速度跟不上发送的速度,怎么处理呢?

已经尝试把socket buffer的空间设置成允许的最大值,空间相对于数据量来说杯水车薪,结果是后面的数据包都丢弃了。

有没有人遇到这种问题,请指点一二,谢谢。
...全文
585 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我在这儿等你 2013-08-13
  • 打赏
  • 举报
回复
谢谢大家的热情回复,结贴了
qq120848369 2013-08-11
  • 打赏
  • 举报
回复
直接上UDT吧。。。UDP自己开发可靠传输没必要费那个人力。
fdl19881 2013-08-11
  • 打赏
  • 举报
回复
无解,传的多媒体? UDP没流量控制,只能从业务上着手改进。多媒体的就降质
max_min_ 2013-08-11
  • 打赏
  • 举报
回复
包的大小不要大于MTU,也不要太小。不过这些好像都跟掉包没有关系。 1 可不可每次有接收信息过来就新开辟一个线程去处理这些消息 2 在UDP的基础上,添加应道模式,当全部收到信息后,发一个信令回去,发送端再发送数据 (目前貌似QQ消息就是这个机制) 3 让发送端每次发送一个后等待一会(这样挺浪费的!) 目前就想到这些
u011584371 2013-08-10
  • 打赏
  • 举报
回复
发送端使用reactor方式,需要发送的数据存放于buffer中,socket可写时再做实际发送 接收端将业务线程与IO线程分离
恨天低 2013-08-10
  • 打赏
  • 举报
回复
1、发送端别发得太快; 2、接收端接收时候只做接收,可以存在一个buf,开启线程去处理buf中的数据。

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧