与UDPClients进行双向通信的策略

本文关键字:策略 双向通信 UDPClients | 更新日期: 2023-09-27 18:34:42

嗨,我想知道如何设置 UDPClients 以实现客户端之间的实时 2 路通信

我正在用 C# 制作一个简单的网络游戏,玩家应该可以托管游戏,其他人也可以连接到它

主机将每 X 毫秒发送一次新的游戏状态,同时接收来自其他玩家的连续用户输入流

其他玩家将不断等待新的输入状态,并将用户输入发送到主机

我想知道的是如何实现这一目标。

我应该使用 2 个不同的 UDPClient,如果它们尝试同时利用相同的资源,是否存在潜在的线程冲突?如果没有,我是否需要以某种特殊方式设置它们,否则如果我使用 1 UDPClient,我是否需要考虑任何特殊情况,或者它是否线程安全,我可以在接收新消息时触发?

与UDPClients进行双向通信的策略

UDP是一种双工协议(如TCP(。

您可以安全地同时发送和接收UDPClient对象。不应使用两个UDPClient对象。

但是,这些操作确实发生在单独的线程(或伪线程,如果您使用 await/async(上,因此您可能会在调用代码中遇到同步问题(显然很难说没有看到它,但潜力是存在的(。