免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4822 | 回复: 8
打印 上一主题 下一主题

有没有好办法控制udp流量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-27 21:10 |只看该作者 |倒序浏览
各位大大,小弟有个问题:有一个项目,对客户端有较高的延迟要求(例如视频),而服务端一直发送数据,那么很容易发生发送端淹没接收端,除了用usleep,最少睡眠1毫秒外,请问还有没有什么好办法呢?谢谢

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2007-09-27 21:39 |只看该作者
就是这么干的啊

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2007-09-28 00:12 |只看该作者
STEVEN 的网络编程上写的usleep内部进行了8次系统调用.. 这么频繁的调用合适吗?
而且操作系统的最短的中断响应时间好像是10毫秒吧.

我总觉得用sleep这种方法不太合适..
我也不清楚用什么办法.

论坛徽章:
0
4 [报告]
发表于 2007-09-28 09:45 |只看该作者
我也遇到了个类似问题。
1个线程接受大概8KB/S 的UDP包,另外1个线程把每个包分为10个包,然后串口115200发送出去。我的缓存是4个UDP包。可是发送端还是来不及发送。
我在发送串口包这里是这样操作的
while(i=0; i <10;i++)
{
     portsend(串口包)
     延时20us;
}
如果我不用这个延时20us;,portsend每次只能发送16个字节,而不是我要发送的128个字节。是发送的太快,把缓冲给充掉了吗?
可是用20us后,两边速率就不匹配了,大概发送了了200K以后就开始掉数据了

[ 本帖最后由 marco_hxj 于 2007-9-28 09:48 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-09-28 12:29 |只看该作者
谢谢各位,那么现在使用的那些p2p电视软件,它们应该也是需要udp传播,可是质量却很好啊,难道说建立发送缓冲和接收缓冲能解决问题或者能使质量提高吗?

论坛徽章:
0
6 [报告]
发表于 2007-09-28 16:55 |只看该作者
我想问一下,我4楼的那个问题,
for(i=0; i<10; i++)
{
write(fd,data,128 );
}
这样的话发送不到1280字节,一般只有162字节。
有什么办法可以解决这个问题吗?谢谢!
我用延时做效果很不好,要以最段的时间把1280个字节发送出去!

[ 本帖最后由 marco_hxj 于 2007-9-28 16:57 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-09-28 17:00 |只看该作者
开环实现:自己实现一个令牌桶
闭环实现:自己实现一套流控机制

论坛徽章:
0
8 [报告]
发表于 2007-09-28 17:26 |只看该作者
建立buffer 把数据存起来..如果还不行.把数据写成临时文件.server 不要停..因为网络已经很慢了.

论坛徽章:
0
9 [报告]
发表于 2007-10-16 00:12 |只看该作者
设计一个buffer机制,有了buffer管理,就好发送数据了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP