我目前正在实时开发ac#在线多人游戏。目的是使用UDP协议建立基于客户端/服务器的连接。到目前为止,我已经使用UDP进行玩家的移动,并使用TCP进行事件(玩家射击,玩家丧命),因为我需要确保这些数据将到达连接到服务器的所有玩家。我知道UDP被称为“不可靠”,并且某些数据包可能会丢失。但是我到处都读到永远不要混用TCP和UDP,因为它会影响连接。
主要问题是我应该如何组织我的网络?
UDP是无连接的,我该如何保存谁是谁?我应该在列表中保存客户端的IP地址吗?
我应该使用TCP处理重要事件还是使用UDP?如果需要使用UDP,如何确保数据不会丢失?
通过同时使用TCP和UDP,我需要为每个播放器将其IP保存在一个列表中(用于UDP),并将TcpClient保存在另一个列表中(对于UDP)。我如何才能使其更有效?