我想使用lidgren在XNA 4.0中创建服务器/客户端游戏,客户端可以列出可用的服务器/主机并选择要加入的服务器。
我如何使用DiscoverLocalPeers或Client.DiscoverLocalPeers(40012);函数返回发现的服务器列表。我假设该函数使用相同的端口查找可用的服务器,但我想列出可用的服务器使用端口包含多个服务器。是否有可能或者我对这个功能的理解是错误的。
非常感谢您的帮助
答案 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:
}