Мне было любопытно, какие параметры могут быть для получения информации о физическом порте от сетевой платы, которую я затем могу использовать в качестве отказа при сбое, если связь будет потеряна. И.Е. провод по порту0 вытягивается, моя программа распознает это и не удается выполнить порт1 для поддержания соединения.Программно получить порт # из моей сетевой карты с помощью C++
ответ
Я думаю, что вы путаете несколько понятий здесь:
Прежде всего, это зависит от того, как сети на вашей машине установлен. У вас несколько сетевых адаптеров, подключенных к одной и той же сети? Рассматриваются ли они как один логический адаптер?
Во-вторых, предполагается, что ваш OS уровне сети использует только каждый сетевой адаптер для отдельной записи маршрута, если потянуть за кабель, ваша программа будет увидеть EOF на следующей
read()
(или сигнал на следующийwrite()
). В этом случае вы можете восстановить свое соединение (без каких-либо оснований сетевого адаптера).В общем, вы не можете притворяться, что соединение не было завершено на уровне библиотеки. OS может предоставить некоторую магию низкого уровня, чтобы сделать что-то подобное, но на уровне сокетов вам нужно будет восстановить соединение (т. Е. Обе конечные точки будут ощущать завершение соединения).
Я согласен с Александром.
Однако, если вы используете версию Linux и хотите знать обо всем, что связано с сетью, посмотрите /proc/net
, в частности файлы dev
и tcp
.
Вот хорошая отправная точка: http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html
Я не думаю, что вы можете, как другие заявили.
Если вы хотите выполнить переход с коммутацией (а не только соединение), я думаю, вам нужно сделать это в коммутаторе (аппаратном обеспечении).
- 1. Выделенный сетевой порт на C#
- 2. Программно получить эфемерный порт с помощью Akka
- 3. Как получить имя сетевой карты
- 4. Как прослушивать сетевой порт в Objective-C
- 5. Как получить MAC-адрес сетевой карты с помощью Delphi?
- 6. Powershell тест v5.1 сетевой порт
- 7. Настройка конкретной сетевой карты
- 8. Программно отключить/включить сетевой интерфейс
- 9. Получить тип сетевой сети и скорость программно в C
- 10. Как получить сетевой размер диска в C# (без «карты диска»)
- 11. Как реализовать Карты Google на моей странице с помощью C#
- 12. Как получить вывод из моей консоли VBScript с помощью C#?
- 13. Обнаружение, если сетевой порт отключен.
- 14. UDP multicast от конкретной сетевой карты
- 15. Как написать и прочитать с сетевой карты в сборке x86?
- 16. Как получить и отправить пакет UDP с сетевой карты?
- 17. Как изменить IP-адрес моей сетевой информации с помощью терминала?
- 18. Можно получить сетевой адрес с помощью PHP?
- 19. Как получить программный порт программно в Dropwizard
- 20. Получить MAC-адрес и имя интерфейса сетевой карты
- 21. SharePoint как сетевой диск - получить идентификатор документа программно с Java
- 22. Сетевой трафик через конкретный порт с использованием iftop
- 23. Как работать с драйверами UIO с моей сетевой картой
- 24. Создание сетевой карты с использованием D3
- 25. Настройки управления питанием сетевой карты
- 26. Получить tcp-порт из Sqlconnection
- 27. Как использовать C# для включения отключенной беспроводной сетевой карты
- 28. Как открыть последовательный порт программно?
- 29. Настроить сетевой адаптер Win 7 программно в C#
- 30. Сетевой порт занят, но его нет.
Будет видеть EOF. В основном то, чего он хочет достичь, должно быть частично достигнуто на более низком уровне протокола, чем там, где он хочет его решить. Если сетевые адаптеры указывают на разные маршруты, протоколы маршрутизатора должны обрабатывать переход на другой ресурс (учитывая, что цель доступна для обоих сетевых адаптеров), однако это не будет прозрачным, необходимо восстановить соединение на уровне приложения. Если сетевые адаптеры подключены к одной и той же сети, то речь идет о транкинге, что является особой вещью, для чего требуется взаимодействие с драйверами и ОС. Это может также не обеспечить автоматический переход на другой ресурс. –