我正在使用 C# 开发一个相对较小的射击游戏项目,该项目必须以体素块的形式发送地图数据,以及玩家移动数据、战斗数据以及未来可能的其他内容。我已经决定使用 protobuf-net 对服务器和客户端之间的数据进行序列化/反序列化,但我不知道应该以何种方式自己发送数据包。protobuf-net 给出的示例使用 TcpListener.BeginAcceptTcpClient 但警告该示例绝不是最佳实践。我的目标是在一台服务器上支持至少 30 个用户,但我当然更希望达到 64 个,而不会因为射击游戏变得太慢而无法实现远程实用。我应该以什么方式建立 TCP 连接并处理数据包?