TcpClient- как подключиться к внешнему IP-адресу?

Я пытался настроить базовый сценарий, где TcpClient подключается к TcpListener на той же машине, но пока она работает только для 127.0.0.1 а также 192.168.X.Y, Вот мой код:

var server = new TcpListener(IPAddress.Any, 51328);

server.Start();

var client = new TcpClient();

client.ConnectAsync(IPAddress.Parse("address from whatismyip"), 51328);

server.AcceptTcpClient(); // hangs indefinitely here

Console.ReadKey();

Я получил свой внешний адрес от whatismyip, но я не уверен, правильно ли я это делаю. Что-то не так с моей процедурой?

1 ответ

Решение

Я предполагаю, что вы пытаетесь подключиться через Интернет? Если вы подключены через какого-либо интернет-провайдера, такого как COMCAST, то, возможно, у вас есть кабельный модем? Для этого вам нужно настроить переадресацию PORT на маршрутизаторе.

Интернет видит только ваш кабельный модем, все ваши запросы в Интернет отправляются как IP-адрес кабельных модемов, маршрутизатор может "маршрутизировать" пакеты на ваш адрес 192.168.xx и от вашего имени, чтобы ваш 192.168 машина будет в состоянии слушать и принять, вы должны указать маршрутизатору пересылать любые сообщения через порт 51328 на вашу машину.

Таким образом, ваш код будет прослушивать порт 51328, используя адрес 192.168.x.xx, а затем вы настраиваете маршрутизатор. Чтобы проверить это, вы должны подключиться, используя общедоступный интернет-адрес, назначенный вашему модему.

Другие вопросы по тегам