SOS!!!SOS!!!SOS!!!SOS!!!SOS!!!SOS!!!SOS!!!完成端口高手请帮忙--在线等待

mess 2002-12-22 11:40:57
我用完成端口进行通讯,在多个线程中调用WSASend(其中有些调用是在GetQueuedCompletionStatus线程中调用)现在出现的问题是
WSASend是调用成功的并且GetQueuedCompletionStatus得到得状态也是成功得,(我在这两个函数得调用得后面进行了计数,)但是真正发出去得数据没有这么多.速度快得时候就丢包,速度越快丢包越严重!

救命!!!!!今天项目甲方要验收,在线等待
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mess 2002-12-22
  • 打赏
  • 举报
回复
我可以保证不是你说的那种情况(我所说的快,是相对的,实际上是一秒钟几个包,一个包不到200bytes),我已经知道这是因为多线程下产生的问题.但是不知道怎样去解决.我认为我上面所说的情况不是丢包,应该是逻辑错误
realdreamer 2002-12-22
  • 打赏
  • 举报
回复
TCP 是保证数据有效传输的. 但如果你的带宽和你发送数据的速率相差太大,打个比方, 你带宽 1k/s , 而你发送速率 1m/s , 那就不能保证了.
mess 2002-12-22
  • 打赏
  • 举报
回复
是tcp
ShutDOT 2002-12-22
  • 打赏
  • 举报
回复
GZ
realdreamer 2002-12-22
  • 打赏
  • 举报
回复
你是用 UDP 协议发送? 你怎么知道丢包啊.
mess 2002-12-22
  • 打赏
  • 举报
回复
你有联系方式忙,QQ?msn?,可以聊聊
realdreamer 2002-12-22
  • 打赏
  • 举报
回复
你一开始说丢包, 我就觉得有问题, 不该是丢包什么的东西. 多线程提交你要保证提交顺序. 如果两个线程同时对一个 SOCKET 进行 WSASEND , 如果你无法控制顺序的话, 数据的顺序就是不确定的! 你得考虑一下这个!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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