Я создаю C# сокет, используя 127.0.0.1 и порт #. Теперь я создаю локальный клиент (который работает локально на том же компьютере, что и сервер), и попробуйте подключиться с помощью fqdn машины. Это не работает. Если я использую 127.0.0.1 вместо fqdn для клиента, он работает. И наоборот, если я создаю сервер, используя fqdn и порт # на локальном компьютере, и если клиент использует 127.0.0.1, это не сработает. Если я использую fqdn в клиенте, тогда все работает. Это заставляет меня думать, в чем разница между собственным IP-адресом/fqdn и 127.0.0.1 машины, поскольку я был под впечатлением, оба они будут ссылаться на одну и ту же машину.Является 127.0.0.1 отличным от IP-адреса?
В случае C# UdpClient мы просто указываем порт #. Как C# справляется с этой проблемой?
В случае, если машина имеет несколько сетевых адаптеров, и если мы просто указываем порт # (например, в случае UdpClient), какой сетевой адаптер используется для создания порта?
ответ
- Ваш клиент разрешает полное доменное имя, которое, вероятно, указывает на другой интерфейс, и не тестируются. Они ссылаются на одну и ту же машину, однако это разные интерфейсы.
- According to MSDN,
UdpClient
будет прослушивать «интерфейс по умолчанию» - Снова, независимо от того, что Microsoft определяет как «интерфейс по умолчанию». На самом деле это означает, что если вы прослушиваете один IP-адрес, вы получите только трафик для этого IP-адреса.
Спасибо за ответ! – user2574953
Адрес IP 127.0.0.1
- это адрес виртуального сетевого адаптера локальной петли, который существует на каждом компьютере. Этот виртуальный адаптер полностью встроен в операционную систему и не может быть подключен извне. Программы, запущенные на одном компьютере, могут взаимодействовать друг с другом, но ничего больше.
Когда вы используете полное доменное имя для подключения к компьютеру, имя разрешено к IP-адресу, принадлежащему этому имени, обычно адресу, прилагаемому к внешнему сетевому адаптеру. Допустим, ваш сетевой адрес компьютера - 192.168.0.2
. Когда вы пытаетесь подключиться к любому порту по этому адресу, он будет никогда подключиться к программе, прослушивая по телефону 127.0.0.1
, больше, чем он будет подключаться к другому компьютеру, прослушивающему по адресу 192.168.0.3
.
Адреса важны.
Если вы хотите, чтобы программа принимала подключения к любому сетевому адаптеру, подключенному к компьютеру, привяжите его к с адресом: 0.0.0.0
.
Спасибо за ответ! Значит, 0.0.0.0 не включает 127.0.0.1? Я написал небольшую программу для проверки этого. – user2574953
Нет, прослушивание '0.0.0.0' должно принимать соединения по всем адресам, включая' 127.0.0.1'. Как вы протестировали это, чтобы заставить его потерпеть неудачу? – Corey
yup. Я написал программу неправильно. – user2574953
- 1. Является ли HttpResponse.Write отличным от StringWriter.Write?
- 2. Является ли cgi отличным от консольного приложения?
- 3. telnet 127.0.0.1 peer не является 127.0.0.1
- 4. Сколько TypScript является синтаксисом, отличным от es6/es7
- 5. Является ли объектно-ориентированное моделирование отличным от объектно-ориентированного программирования?
- 6. Является ли `exit $?` Значимо отличным от `exit` в bash?
- 7. Является ли MS SQL отличным от SQL Server?
- 8. Является ли MySQL `ORDER BY` отличным от мультисетей?
- 9. Является ли Android Instant App отличным от приложения?
- 10. Является ли 'signed size_t' отличным от 'ssize_t'? (Ubuntu 13.10)
- 11. Является ли iOS Keychain отличным от iCloud брелка?
- 12. Является WSDL, сгенерированным WebSphere, отличным от того, сгенерированного службой WCF?
- 13. Является ли язык ассемблера отличным от одного архитектурного?
- 14. Является ли отображение карты всегда отличным от платформы как услуги?
- 15. Является ли запрос J Session отличным от сеанса .net?
- 16. Является ли «язык ассемблера» отличным от ОС или без него?
- 17. Является ли тестирование идентичным, отличным от тестирования, в корте?
- 18. Является ли UAC на Win7 отличным от Vista?
- 19. Является ли asp.net 5 отличным от asp.net mvc?
- 20. Является ли синтаксис внешних файлов javascript отличным от javascript?
- 21. Является файлом htaccess, отличным от apache, запущенным на сервере Windows
- 22. Является ли сборщик мусора затмения отличным от стандартного?
- 23. Является ли anaconda для Fedora отличным от anaconda для python?
- 24. Является ли использование файла отличным от шифрования содержимого
- 25. Является ли SPDY отличным от http-мультиплексирования, поддерживающего живые соединения.
- 26. Является ли regex для Hive отличным от обычного регулярного выражения?
- 27. Является ли classOf [] в Scala 2.8 отличным от 2.7?
- 28. Является ли Erlang «единственным заданием» отличным от «неизменяемых значений» Haskell?
- 29. Является ли linq отличным от linq to sql?
- 30. Значение SSE, рассчитанное в C++, является отличным от истинного значения
Попробуйте привязать сервер к 0.0.0.0. Тогда и FQDN, и 127.0.0.1 должны работать. – uselpa