当在完成端口中.如下使用.结果会如何?谢谢

cnvvv 2004-10-21 08:58:51
当在完成端口中.如下使用.结果会如何?谢谢

比如:
WSASEND("aaa");
WSASEND("bbb");

会不会出现发出的结果合并?如:"aababb"这样的效果?

这样的操作.是不是就要等一个操作完成再作下一个操作才能不出现这样的情况?

请高手指教.谢谢
...全文
197 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-04-14
  • 打赏
  • 举报
回复
wsasend执行后,在get函数里可能会出现发送的包并不完全的情况,这时需要在工作者线程相对应的发送操作处理代码块中将剩下的部分继续发送出去。
sevencat 2004-10-29
  • 打赏
  • 举报
回复
我要测试一下这种情况,不过这几天心情不好:<,什么事情也不想做。
cnvvv 2004-10-28
  • 打赏
  • 举报
回复
sevencat(七猫)大哥.怎么不回我了啊?:(
cnvvv 2004-10-21
  • 打赏
  • 举报
回复
GetQueueResult完成返回的长度与要发的长度不一样.不是WSASend的数.
sevencat 2004-10-21
  • 打赏
  • 举报
回复
我想想,你是说
WSASend调用结果显示dwSendBytes里面的长度跟实际长度不一样?
还是GetQueueResult里面的长度跟实际长度不一样?
cnvvv 2004-10-21
  • 打赏
  • 举报
回复
是的.完成端口
sevencat 2004-10-21
  • 打赏
  • 举报
回复
完成端口情况下?
cnvvv 2004-10-21
  • 打赏
  • 举报
回复
是的.在发送时不一定全发完才返回.有时发一半就有发回了.当然.是因为对方接收不急时才有这个情况.如果理想状态是不会有的.
sevencat 2004-10-21
  • 打赏
  • 举报
回复
你有测试过会发生这种情况吗?
cnvvv 2004-10-21
  • 打赏
  • 举报
回复
七猫前辈,可否方便留下您的qq号.方便联系.
cnvvv 2004-10-21
  • 打赏
  • 举报
回复
在完成端口下也会的.消息列队中有第一个与第二个.

第一个不一定是全发完了才返回完成消息的.有可能8k只发了4k.就返回消息.这时如果程序发现没发完还要再次投出发送消息.但此时第二个已经在发了.
sevencat 2004-10-21
  • 打赏
  • 举报
回复
在完成端口条件下似乎不会。
cnvvv 2004-10-21
  • 打赏
  • 举报
回复
但第一个有可能发到一半就有返回的.不一定全发完的呀.
sevencat 2004-10-21
  • 打赏
  • 举报
回复
MS的实现好像是确保第一个WSASend发送完毕才会做第二个WSASend.
sevencat 2004-10-21
  • 打赏
  • 举报
回复
第二个情况不会,至少我似乎没碰到过。
cnvvv 2004-10-21
  • 打赏
  • 举报
回复
第一个WSASEND只发出了"aa"返回了完成消息,因为没发完.所以还要发.
第二个WSASEND也是一样.发了一个"b"返回了完成消息.因为没发完.还要发.

这样会不会出现上面的效果?在一个socket上.

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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