2014-04-30 55 views
0

我想在XNA 4.0中使用lidgren創建服務器/客戶端遊戲,其中客戶端可以列出可用的服務器/主機並選擇要加入的服務器。lidgren/XNA如何使用DiscoverLocalPeers返回IP

我該如何使用DiscoverLocalPeers或Client.DiscoverLocalPeers(40012);函數返回發現的服務器列表。我假設該功能查找可用的服務器使用相同的端口,但我想列出可用的服務器使用端口incase那裏有多個服務器。是否可能或者我對功能的理解是否錯誤?

您的幫助將不勝感激

回答

1

我不是這個庫中的專家,但DiscoverLocalPeersvoid返回類型,所以我想,這個功能只將消息發送到服務器與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: 
} 
+0

真正地沒有help.is有標識使用相同NetPeerConfiguration標識不同服務器的方式 – Mantsali