dlras2
dlras2

Reputation: 8496

How do you get the host address and port from a System.Net.EndPoint?

I'm using a TcpClient passed to me from a TcpListener, and for the life of me I can't figure out a simple way to get the address and port it's connected to.

The best I have so far is _client.Client.RemoteEndPoint.ToString(); which returns a string in the form FFFF::FFFF:FFFF:FFF:FFFF%00:0000. I've managed to extract the address and port using Regular Expressions, but this seems like overkill. What am I missing?

Upvotes: 1

Views: 2806

Answers (1)

Dean Harding
Dean Harding

Reputation: 72668

You can cast the EndPoint to an IPEndPoint

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

You shouldn't really need the test for != null, cause you know that it'll always be IPEndPoint if you're connecting to an internet address...

Upvotes: 3

Related Questions