与UDPClients进行双向通信的策略

时间:2014-12-19 21:57:54

标签: c# multithreading udpclient

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

我正在使用C#编写一个简单的网络游戏,玩家可以主持游戏,也可以让其他人连接游戏

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

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

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

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

1 个答案:

答案 0 :(得分:1)

UDP是双工协议(如TCP)。

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

然而,那些操作发生在不同的线程(或伪线程,如果你使用await / async),所以你可能会遇到调用代码中的同步问题(显然很难说没有看到它,但潜力就在那里。)