请教indy 的udpserver/udpclient的问题(50分)

  • 主题发起人 主题发起人 fhong
  • 开始时间 开始时间
F

fhong

Unregistered / Unconfirmed
GUEST, unregistred user!
我用indy的udpserver/udpclient写了一个程序
分客户端和服务器端 是internet上的
现在出现的问题是 数据量(数据其实也不大,几百个汉字而已)一大就发送不成功了 buffersize改大了也没用
怎么办才好啊
 
你在局域网测试过你的程序吗?
我和你的想法相反,你把缓冲区设置小测试看看?
 
为什么要把缓冲区设置小点
我在本机同时开通server和client 是可以发送的啊
 
设小一些试试吧。本机和互联网不同的。
 
好象不关buffersize 的事的 设多大多少 都是发那么多字的 奇怪
如果在本机发 就可以发多一倍的字
 
buffersize 决定upd发送数据的时候包大小吧。
 
UDP 数据包一般不要超过 2k ,数据包的越大,发送的成功率越低。
我一般都是用 1.5k,发送很稳定。
局域网内网络比较稳定,数据包的大小可以适当的增大一点,但是最好还是不要大于 2k,大于 2K 的数据包随着数据包的增大,发送的成功率会急速的下跌。
我建议楼主采用数据包大小动态调整的方法:
随时的监控数据包发送的成功率,当成功率低于一定的水平,就减小数据包大小,否则可以适当的增加数据包大小。
 
上边所说的“数据包大小”跟 buffersize 的设置无关,buffersize 可以设置为比数据包大小稍大,我所说的“数据包大小”是实际要发送的数据的大小,假如设定了“数据包大小”为1.5K,但是要发送的数据大于 1.5K ,则需要发送的数据需要进行分割,分成多个数据包发送。
 
Indy In Depth推荐的是不超过1K。
用UDP的话,还有很多事要自己做。切包重组等
 
去2ccc下个《Indy In Depth》看看吧,
 
zywcd积极性15分
liyinwei详细性15分
其他两位兄弟对我提供信息各10分
 
后退
顶部