阅读:1190回复:5
保存所有收到的包后,组包时如何准确地排除掉重复的包?
我正在做一个用POP3接收邮件的模块,在和服务器建立连接和发送收信指令后,
服务器将邮件分包发送过来,程序负责对所有的包进行组包以还原整封邮件, 当邮件很小或网络很畅通时邮件完整无缺,当接收大邮件(几M)时则邮件会被 损坏,比较明显的现象是有邮件附件是BMP位图时,预览位图可以看到位图已被 损坏,用UltraEdit比较 正常的位图和被损坏的位图,发现被损坏的位图比正 常的位图一些数据块,证明不是网络丢包而是收到了重复的包,哪么如何准确地 排除掉重复的包呢? 我已经做了如下操作,有一定效果,但在网络比较忙时组包后还是有一些重复的包: 1、保存每个包的序列号,当下个包来时如果序列号已存在则丢弃该包 2、保存每个包的(序列号+长度)的一个数值,如果下个包的序列号在这个区间则丢弃该包 3、对所有的包排序,以序列号升序排列 请教各位高手! |
|
沙发#
发布于:2004-07-14 18:40
来人呀
|
|
板凳#
发布于:2004-07-13 17:31
自已UP一下
|
|
地板#
发布于:2004-07-13 10:34
应该不是程序有BUG问题,而是不知道怎么排除掉重复的包
|
|
地下室#
发布于:2004-07-12 16:27
怀疑是你的程序中存在bug,导致数据被重复。
|
|
5楼#
发布于:2004-07-12 16:12
自已UP
|
|