【问题标题】:Strategy for 2 way communication with UDPClients与 UDPClients 进行 2 路通信的策略
【发布时间】:2014-12-19 21:57:54
【问题描述】:

您好,我想知道如何设置 UDPClients 以启用客户端之间的实时 2 路通信

我正在使用 C# 开发一个简单的网络游戏,应该可以让玩家托管游戏并让其他人连接到它

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

其他玩家会不断地等待新的输入状态,同时也会向主机发送用户输入

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

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

【问题讨论】:

    标签: c# multithreading udpclient


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 2020-05-08
      • 2018-02-27
      • 1970-01-01
      • 2020-11-23
      相关资源
      最近更新 更多