使用UDP测试多人游戏客户端/服务器?
我正在使用UDP进行我正在制作的游戏,但这个问题并不一定是游戏特定的。我注意到,无论何时我想在本地测试某些东西并使用广播,UDP客户端发送一些数据的机会也是同一个客户端再次接收它,而不是其他客户端也从同一台机器连接。使用UDP测试多人游戏客户端/服务器?
如何在一台机器上有效地进行测试和调试,在两台机器上使用的情况下进行仿真?
两个选项:
- 使用不同的端口,用于交通的每个方向,例如
client -> server
是端口2001,server -> client
是端口2002. - 使用虚拟机。您可以使用VirtualBox或VMWare设置虚拟操作系统,并配有网卡。
后一个选项不需要您更改代码,但每次更改代码时都需要将服务器或客户端应用程序复制到VM。
您是否使用某种标识符(用户名或ID)来检测谁发送了原始邮件?
检查收到的消息是否与接收方使用相同的标识符发送,如果是,则丢弃该消息。
由于某些原因(根据我的调试结果),只有一个客户端收到该消息。另一个没有。 –
@Mathias怪异的,它应该[可能](http://*.com/questions/1694144/can-two-application-listen-to-the-same-port)。 – CodeCaster
我明白了。任何想法,为什么它可能会发生?重用地址设置为true就好了。 –
但是对于UDP,我不能有2个不同的端口,可以吗? –
此外,当我使用广播时,这将如何工作? –
是的,你可以有多个端口。只需使用两个'UdpClient'实例。如果您正在广播,可以在两个独立的频道上使用多播,或者按照CodeCaster的说法进行播放,并在消息中放置一个“to”标题。 – Polynomial