Я создаю сервер (на настольном компьютере), который прослушивает порт 4504, используя этот бит кода
IPAddress[] AddressAr = null;
String ServerHostName = "";
try
{
ServerHostName = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostByName(ServerHostName);
AddressAr = ipEntry.AddressList;
}
catch (Exception) { }
if (AddressAr == null || AddressAr.Length < 1)
{
return "Unable to get local address ... Error";
}
Listener_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Listener_Socket.Bind(new IPEndPoint(AddressAr[0], Port));
Listener_Socket.Listen(-1);
Listener_Socket.BeginAccept(new AsyncCallback(EndAccept), Listener_Socket);
return ("Listening On " + AddressAr[0].ToString() + ":" + Port + "... OK");
Теперь проблема в том, что я хочу запустить это на своем сервере и значениеAddressAr [0] Я хочу быть публичным IP-адресом моего сервера, но этот фрагмент возвращает локальный сетевой адрес сервера.
Как я хочу AddressAr [0] = "180.123.45.6" что-то [это публичный IP-адрес моего сервера], но с этим фрагментом я получаю AddressAr [0] = "192.168.2.2"
PS: я запускаю этот сервер как настольное приложение, и мои испытания были в режиме отладки.
Буду признателен за любую помощь.Спасибо.