我正在使用從(server,client)提供的服務器和客戶端套接字通信。當我從同一臺機器上運行這些項目時,一切正常。當我試圖用其它PC作爲客戶端我收到以下異常消息:索引超出了套接字客戶端的數組邊界c#代碼
指數所述陣列的asynchronousClient.StartClient()在管線47中的vounds這實際上是第二線之外:
IPHostEntry ipHostInfo = Dns.GetHostEntry("serverIp");
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
編輯 IPHostEntry包含其中服務器存儲在PC的名稱。但是ipAdress爲空。
從@傑夫 - 伍茲:下來投票 你踩此代碼在調試器來找出到底什麼是Dns.GetHostEntry回來?看起來非常明顯,那條線上的「索引超出界限」錯誤,您嘗試按索引獲取item [0],意味着數組AddressList沒有元素零。 向我們展示更完整的代碼可能會更有幫助。 –
如果(ipHostInfo.AddressLength.Length == 0)拋出新的異常(「沒有IPv6支持」); –
你想用這段代碼做什麼? GetHostEntry用於解析* names *中的* IP *。如果'serverIp'字符串實際上包含一個IP,那麼這個代碼將返回最多與您提供的IP相同的輸入。 –