如何从System.Net.EndPoint获取主机地址和端口?

时间:2010-05-27 03:27:33

标签: c# .net tcp ip-address

我正在使用从TcpClient传递给我的TcpListener,在我的生命中,我无法想出一个简单的方法来获取它所连接的地址和端口。< / p>

我到目前为止最好的是_client.Client.RemoteEndPoint.ToString();,它返回FFFF::FFFF:FFFF:FFF:FFFF%00:0000形式的字符串。我已经设法使用正则表达式提取地址和端口,但这似乎有点矫枉过正。我错过了什么?

1 个答案:

答案 0 :(得分:2)

您可以将EndPoint投射到IPEndPoint

var ep = _client.Client.RemoveEndPoint as IPEndPoint;
if (ep != null)
{
    Console.WriteLine("Address: {0}", ep.Address);
    Console.WriteLine("Port: {0}", ep.Port);
}

你不应该真的需要测试!= null,因为你知道如果你连接到互联网地址它将永远是IPEndPoint ...