我正在开发一个完全在单个网络内运行的 .net 解决方案。当用户对系统进行更改时,我想发布一个公告,让其他人听到并采取相应的行动。有没有一种方法可以像这样广播消息(例如 UDP 允许您这样做)同时保持有保证的传送(例如 TCP)?
这是在一个小型网络(30 个左右的客户端)上,如果这会有所作为的话。
最佳答案
几乎所有游戏都需要 UDP 的快速响应特性(以及较小程度上的无连接特性)和 TCP 的可靠性。他们所做的是在 UDP 之上构建自己的可靠协议(protocol)。这使他们能够将数据包突发到任何地方,并有选择地使它们可靠。
可靠的数据包系统通常是一个简单的重试直到确认系统,比 TCP 更简单,但有些协议(protocol)远远超出 TCP 所能提供的范围。
你的情况听起来很简单。您可能能够自己制定最干净的解决方案 - 只需让每个客户端发回“我听到你”的响应并让服务器继续尝试直到它收到(或放弃)。
如果您想要更多,大多数自定义协议(protocol)库都是用 C++ 编写的,所以我不确定它们对您有多大用处。然而,我在这里的知识是几年前的——也许现在已经移植了一些协议(protocol)。嗯...RakNet 和 enet 是我想到的两个 C/C++ 库。
关于.net - 像 UDP 一样广播,具有 TCP 的可靠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31572/