数据传输丢包问题(大家多参与)

太空11 2006-09-08 08:28:21
基于idtcpclient和idtcpserver的数据传输,当服务端只接收数据,不对数据进行处理时,数据丢失率较少,能够达到要求,但是如果对数据进行处理时,数据丢包比较严重,(这里对数据处理用存储过程)
根据现状,如果连接20个客户端,每60毫秒要处理20个数据包。
...全文
437 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
雄牛 2006-09-14
  • 打赏
  • 举报
回复


没用过,关注中...

顶一下.....

halfdream 2006-09-14
  • 打赏
  • 举报
回复
呵呵..楼主讨论这么半天,也不说自己具体实现些编码片断...

可以明确的告诉楼主,基于TCP通讯,数据传输可靠相当高的.如果出现丢包现象,只能是明显的代码错误或应用协议设计缺陷.

wudi_1982 2006-09-08
  • 打赏
  • 举报
回复
把接收和处理分开做。以前也用ServerSocket和ClientSocket做过类似的东西,没有这种问题啊。
太空11 2006-09-08
  • 打赏
  • 举报
回复
如果我的问题 出现问题了 能给我一个小例子吗?
我的邮箱:mengxiang2000000@163.com
qq:503502528
halfdream 2006-09-08
  • 打赏
  • 举报
回复
楼主代码出问题了.
bluesky23 2006-09-08
  • 打赏
  • 举报
回复
mark一下。
postren 2006-09-08
  • 打赏
  • 举报
回复
没用过idtcpclient和idtcpserver

但当时我用ServerSocket和ClientSocket的时候,也没发生过这样的情况啊

用阻塞模式,接收多少就处理多少,应该不会造成丢包

用接收线程和处理线程,分别处理

接收线程仅仅负责把接收到的完整的包放到处理队列中,处理线程仅仅负责处理

这样效果会好很多
太空11 2006-09-08
  • 打赏
  • 举报
回复
也就是说现在对数据处理的速度根不上接收数据包的速度,而且cpu的使用情况对接收数据包有很大的影响。
太空11 2006-09-08
  • 打赏
  • 举报
回复
当我连接上20个客户端同时传输的时候,就会有数据包丢失(每个客户端上传数据时间间隔为60毫秒)
太空11 2006-09-08
  • 打赏
  • 举报
回复
一个客户端的时候没有丢包的情况 但是客户端多了以后丢包的情况就开始出现了
noelse520 2006-09-08
  • 打赏
  • 举报
回复
你把接收到的数据记录下,看看丢包的规律,我想应该是你代码出问题了~!
noelse520 2006-09-08
  • 打赏
  • 举报
回复
我也做过类似的东西,也没有丢包的现象.
太空11 2006-09-08
  • 打赏
  • 举报
回复
我在作这个程序的时候自己做了一个缓冲区,这个缓冲区负责的是把所有接收到的数据包暂存,用一个timer控件定时处理这些数据包,这样满足不了要求,丢数据包的情况仍然存在
太空11 2006-09-08
  • 打赏
  • 举报
回复
大家的意思是多做几个线程 其中有一个线程是专门处理接收过来的数据对把

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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