使用UDP测试多人游戏客户端/服务器?

问题描述:

我正在使用UDP进行我正在制作的游戏,但这个问题并不一定是游戏特定的。我注意到,无论何时我想在本地测试某些东西并使用广播,UDP客户端发送一些数据的机会也是同一个客户端再次接收它,而不是其他客户端也从同一台机器连接。使用UDP测试多人游戏客户端/服务器?

如何在一台机器上有效地进行测试和调试,在两台机器上使用的情况下进行仿真?

两个选项:

  1. 使用不同的端口,用于交通的每个方向,例如client -> server是端口2001,server -> client是端口2002.
  2. 使用虚拟机。您可以使用VirtualBox或VMWare设置虚拟操作系统,并配有网卡。

后一个选项不需要您更改代码,但每次更改代码时都需要将服务器或客户端应用程序复制到VM。

+1

但是对于UDP,我不能有2个不同的端口,可以吗? –

+0

此外,当我使用广播时,这将如何工作? –

+0

是的,你可以有多个端口。只需使用两个'UdpClient'实例。如果您正在广播,可以在两个独立的频道上使用多播,或者按照CodeCaster的说法进行播放,并在消息中放置一个“to”标题。 – Polynomial

您是否使用某种标识符(用户名或ID)来检测谁发送了原始邮件?

检查收到的消息是否与接收方使用相同的标识符发送,如果是,则丢弃该消息。

+0

由于某些原因(根据我的调试结果),只有一个客户端收到该消息。另一个没有。 –

+0

@Mathias怪异的,它应该[可能](http://*.com/questions/1694144/can-two-application-listen-to-the-same-port)。 – CodeCaster

+0

我明白了。任何想法,为什么它可能会发生?重用地址设置为true就好了。 –