lidgren / XNA如何使用DiscoverLocalPeers返回IP

时间:2014-04-30 13:44:00

标签: c# client xna-4.0 vs2010-express lidgren

我想使用lidgren在XNA 4.0中创建服务器/客户端游戏,客户端可以列出可用的服务器/主机并选择要加入的服务器。

我如何使用DiscoverLocalPeers或Client.DiscoverLocalPeers(40012);函数返回发现的服务器列表。我假设该函数使用相同的端口查找可用的服务器,但我想列出可用的服务器使用端口包含多个服务器。是否有可能或者我对这个功能的理解是错误的。

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我不是这个库的专家,但是DiscoverLocalPeers的返回类型为void所以我猜这个函数只向类型为DiscoveryRequest的服务器发送一条消息。所以在你的服务器端你应该有这样的东西来处理传入的数据:

 switch (incommingMessage.MessageType)
{
                    case NetIncomingMessageType.DebugMessage:
                    case NetIncomingMessageType.ErrorMessage:
                    case NetIncomingMessageType.WarningMessage:
                    case NetIncomingMessageType.VerboseDebugMessage:
                    case NetIncomingMessageType.StatusChanged:
                    case NetIncomingMessageType.DiscoveryRequest :
                            // here, you should send a response back with type DiscoveryResponse

                    default:
}