Проверка соединения точка-точка на одной машине, тест сетевых адаптеров |
Здравствуйте, гость ( Вход | Регистрация )
Проверка соединения точка-точка на одной машине, тест сетевых адаптеров |
MedEx |
11.5.2011, 11:09
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 11.2.2011 Пользователь №: 2403 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте!
Подскажите, на машине установлены несколько сетевых адаптеров, некоторые соединены точка-точка, некоторые подключены к хабу. Необходимо проверить пары точка-точка и внешнее подключение. 1. Составил список IP адресов адептеров на машине. 2. Пытаюсь на адреса из списка послать броадкаст пакет от выбранного адаптера. Затем от следующего из списка и так до конца. По идее должен получиться список пар из тех кто принят пакет (соединённых точка-точка). В обработчик попадают все адаптеры даже не соединённые физически друг с другом. Видимо на уровне драйвера происходит переадресация не доходя до канального уровня. Делал примерно ту же задачу но на Builder C++ 2010, всё было легко и просто UDP сокет, мультикаст, отправка пакета по списку. В обработчике читаю от кого в сокете кому - составил пару и вывел на экран. Может дело именно в мультикасте? Код на qt
участвуют 3 адаптера : 1. 192.168.50.2 связан точка-точка с 192.168.50.3 2. 192.168.50.3 связан точка-точка с 192.168.50.2 3. 192.168.3.43 подключен к хабу результат |
|
|
MedEx |
18.5.2011, 10:18
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 11.2.2011 Пользователь №: 2403 Спасибо сказали: 0 раз(а) Репутация: 0 |
Опытным путём удалось установить , что пакеты адресованные адаптерам установленным на одной машине (TCP,UDP) отправляются сокету напрямую через драйвер. Если сокет забинден на адрес и порт и есть джоин на групповой адрес у отправителя и получателя, то пакет идёт на канальный уровень.
|
|
|
MedEx |
20.5.2011, 8:22
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 11.2.2011 Пользователь №: 2403 Спасибо сказали: 0 раз(а) Репутация: 0 |
Камрады поделитесь рабочим примером мультикаста для qt 4.7, очень большая просьба. Примеры из инета не работают, а в чём причина сложно разобраться.
|
|
|
Litkevich Yuriy |
20.5.2011, 17:06
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
MedEx |
27.5.2011, 8:54
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 11.2.2011 Пользователь №: 2403 Спасибо сказали: 0 раз(а) Репутация: 0 |
Litkevich Yuriy,
извините за задержку, работой завалили.
In constructor 'MainWindow::MainWindow(QWidget*)': error: expected primary-expression before 'struct' error: expected ';' before 'struct' error: expected primary-expression before 'struct' ... 16 сообщений. Комментирую от "struct ip_mreq" по последнего сетсокопта...ошибки исчезают. |
|
|
MedEx |
24.6.2011, 9:16
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 11.2.2011 Пользователь №: 2403 Спасибо сказали: 0 раз(а) Репутация: 0 |
если кому ещё интересен мультикаст
Цитата foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces()) видимо есть совпадение имён с файлами windows.h или iphlpapi.h заменить на Цитата foreach(QNetworkInterface interface_x, QNetworkInterface::allInterfaces())
|
|
|
Текстовая версия | Сейчас: 2.12.2024, 11:51 |