Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Несколько сетевых карт на одном ПК, ошибка в работе сокетов?



  • На ПК стоят 2 сетевых карты подключенных в 2 разные не связанные подсети, 2 витруальных карты от VMWare 7.
    Создаю 2 UDP сокета (по 1му на каждой карте (реальной)).
    Отправляю пакет с сокетов подсоединённых к разным подсетям (адрес получателя - IP адрес второй карты, не броадкаст).
    Получаю пакет на сокете второй карты.
    По идее такого не должно быть, в петлю должны попадать пакеты отправленные на локалхост, на свой адрес, броадкаст. Если пакет адресный, он не должен подниматься на вход , а уходить вниз на физический уровень.
    "исходники":http://forum.sources.ru/index.php?act=Attach&type=post&id=2954141&attach_id=11352
    Загвоздка в том, что тоже самое написанное на Builder c++ на той же машине работает нормально, сокеты созданные на картах разных подсетей не получают пакетов друг от друга.
    Вот схема прохождения пакетов в системе OSI-ISO
    !http://s52.radikal.ru/i137/1108/c0/94bfc4c3d8d4.gif(OSI-ISO)!
    Пингуются все три карты. Трассировка сразу на адрес карты. Сервисы VMWare отключил, результат тот же!
    Может ли быть каким-то образом включен роут на уровне драйвера ethernet, который пересылает адресный пакет на уровне IP не вниз на физический уровень, а определяет что получатель на той же машине и направляет пакет на вход?



  • Забыл добавить... ОС Windows, но код пишу также и для Linux. Адреса:

    1. 10.1.1.2 точка-точка оптика с 10.1.1.3 на одном ПК.
    2. 10.1.1.3 ------------------------------.
    3. 10.1.1.4 точка-точка витая пара на другой ПК.
    4. 192.168.3.43 витая пара на свитч.

Log in to reply