太奇怪了, AfxMessageBox干什么了?

cbeginner2000 2005-12-12 05:29:45
太奇怪了,

一次业务要 4 个包, 由 server -> client。

服务器发送序列为:

packet3,
packet2,
packet1,
packet0, // debug 正常

客户端用 CAsyncSocket 接收数据, 大概结构是:

void ClientRecieve() {
if (接收完 4 个包) {
送到窗口显示;
}
}

在窗口显示函数内中如果用

1。 AfxMessageBox("所有包数据条数") <--- 当然要鼠标点一下“确定”

客户端接收包序列为:

packet3,
packet2,
packet1,
packet0,
packet0, <--- 多了一个 packet0 !

2。如果

TRACE("所有包数据条数");

packet3,
packet2,
packet1,
packet0, <--- 正常


太奇怪了, AfxMessageBox干什么了?
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbeginner2000 2005-12-15
  • 打赏
  • 举报
回复
AfxMessageBox 时,有时还会

packet3,
packet2,
packet1,
packet1, <-- 多了
packet0,

在 OnRecieve() 中就是多了一次啊
test2002 2005-12-13
  • 打赏
  • 举报
回复
你用Release版本试一下,应该正常的。
可能在调试版本下,AfxMessageBox有点问题,(我估计AfxMessageBox在调试下,可能没阻塞当前线程引起)
oyljerry 2005-12-12
  • 打赏
  • 举报
回复
可能对话框弹出信息重复等了
直接看接收到多少包好了
cbeginner2000 2005-12-12
  • 打赏
  • 举报
回复
是 TCP 的
packet3,
packet2,
packet1,
packet0,

均是业务包,与 TCP 底层没有关系

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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