找回密码
 用户注册

QQ登录

只需一步,快速开始

楼主: halleyzhang

127.0.0.1受网络状况影响吗

[复制链接]
 楼主| 发表于 2010-4-29 12:39:35 | 显示全部楼层
原因找到,是因为客户端发送速率不是均衡的,有时瞬间发送的数据太多(约100k的数据拆成小包后在一个循环里连续发送),服务器端来不及转发缓冲区就满了,把服务器端缓冲区增大,试验一下ok。但这只是试验,最终的解决方法以下哪种好呢?
1、客户端发送数据时稍作延迟,每发送一个小包sleep一下。这似乎会影响效率,但如果服务器端来不及处理,发快了也没用
2、增大服务器端的缓冲,但要设得很大,考虑到同时在线人数和每个用户处于峰值状态的概率,可能要100M左右,这样对效率会有影响吗?
发表于 2010-4-29 15:13:44 | 显示全部楼层
个人意见,同样开发成本的前提下,控制速率均衡比增大缓冲更好一些,缓冲需要有,但不宜过大。
 楼主| 发表于 2010-5-4 19:06:54 | 显示全部楼层
同意。经过考虑决定还是要加一个缓冲区,一个线程制造数据放到缓冲区里,另一个线程用高精度的定时器控制发送速度,均匀地从缓冲区取数据发送。如果发现缓冲区里积压了太多数据,就把较早的数据扔掉。
这个方法虽然麻烦,但也算满意了。谢谢大家的帮助
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-22 16:34 , Processed in 0.015368 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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