【发布时间】:2012-10-10 19:24:02
【问题描述】:
我正在编辑旧版 MFC 应用程序,我必须添加一些基本的网络功能。操作方必须接收一个简单的指令(数字 1、2、3、4...)并根据它做一些事情。客户希望延迟尽可能快,所以我自然决定使用数据报 (UDP)。
但是阅读各种资源让我感到困惑。我无法在 MFC 中收听 UDP 套接字 (CAsyncSocket),只能调用 Receive 阻止并等待。阻止用户界面并不是真正的聪明。所以我想我可以使用一些线程技术,但是由于我对 MFC 的经验并不多,应该如何实现呢?
问题的另一部分是我应该这样做,还是恢复到 TCP,考虑可靠性和实施问题。我知道 UDP 不可靠,但它到底有多不可靠?我读到它的速度提高了 50%,这对我来说非常重要。
我使用的参考资料: http://msdn.microsoft.com/en-us/library/09dd1ycd(v=vs.80).aspx
【问题讨论】:
-
什么延迟?是发送命令还是接收对命令的响应?
-
发送命令。远程应用程序应在发出命令后尽快开始工作。
-
命令的顺序是否相关?
-
您可能会发现此线程很有用“什么时候适合使用 UDP 而不是 TCP?” -stackoverflow.com/questions/1099672/…
-
命令的顺序不会导致应用崩溃,也不会在短时间内出现,所以不会混淆。但是,如果一个命令丢失,下一个命令会使应用程序处于当前不需要的状态(状态类似于播放、停止和暂停)。不过,如果我选择了,如何实现 UDP 监听?
标签: c++ networking tcp network-programming udp