我正在使用从(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相同的输入。 –