我正在开发一个完全在单个网络中运行的.net解决方案.当用户对系统进行更改时,我想发布一个通知,让其他人听到并做出相应的操作.有没有一种方法可以广播这样的消息(比如UDP会让你这么做),同时保证有保证的交付(比如TCP)?
这是一个小型网络(30个客户端),如果这会有所作为.
几乎所有游戏都需要UDP的快速反应属性(以及较小程度上的无连接属性)和TCP的可靠性.他们所做的是在UDP之上构建自己的可靠协议.这使他们能够将数据包突发到任意地点并且可选地使它们可靠.
可靠的数据包系统通常是一个简单的重试直到确认的系统,比TCP简单,但有些协议超出了TCP提供的范围.
你的情况听起来很简单.您可能自己能够制作最干净的解决方案 - 只需让每个客户端发回"我听到你"的响应,并让服务器继续尝试直到它得到它(或放弃).
如果你想要更多东西,大多数自定义协议库都是用C++编写的,所以我不确定它们对你有多大用处.但是,我在这里的知识还有几年的历史 - 现在可能已经移植了一些协议.嗯...... RakNet和enet是我想到的两个C/C++库.
看一下具有tcp和udp功能组合的sctp.有一个Windows 实现可用.
您可以使用Spread进行群组通信.