如何处理ClientSocket丢包问题啊?(100分)

  • 主题发起人 主题发起人 soft_fly
  • 开始时间 开始时间
S

soft_fly

Unregistered / Unconfirmed
GUEST, unregistred user!
就是,当我发送比接收快的时候,ClientSocket就会丢包
正常情况下,应该是我发送数等于接收数的。可是当发送过快,接收就会少啊,如何处理这种情况?
谢谢
 
郁闷,怎么没人答??[:(]
 
还是没人回答啊。。。。。。。。。。。。。。。。。。
 
我说说吧,应该是这样的,接收端会在内存当中开一个缓存存储接收到的数据,如果速度过快,缓存当中的数据来不及处理就被后面接收到的数据覆盖了!
这样的话,一般是这样处理的:你的程序在本地内存建立一个缓存,接收到数据之后将数据从SOCKET为你建立的缓存当中读出来,保存到你自己建立的缓存当中,然后再做处理,这样就可以防止数据丢失的问题了!
这个问题在DWF里面DJ已经问过了!
 
要不就采用一问一答方式。
保证不会丢,可能就慢一些。但是可靠。
 
要不就采用一问一答方式。
保证不会丢,可能就慢一些。但是可靠。
 
看我的贴!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2140578
 
我好像会出现包分段收取的现像啊?
比如我包长12Byte,它分两次收,一次8,一次4
但是,很奇怪的是:ReadBufSize := Socket.ReceiveBuf( tmpBuf,HeadSize);
我用这样的语句,ReadBufSize 有值,可是tmpBuf为空?
 
后退
顶部