Есть ли способ проверить многоадресный IP-адрес на той же коробке?
Если я хочу протестировать набор многоадресных IP-программ (отправитель / получатель) без необходимости настройки сети, можно ли это сделать на одном устройстве? Если так, что нужно настроить или сделать по-другому?
5 ответов
Возможно, вы уже поняли это (поскольку вопросу уже 2 года), но для многоадресной рассылки на одном хосте вам нужно сделать только две вещи: (1) убедиться, что на принимающих многоадресных сокетах установлен SO_REUSEADDR (чтобы несколько процессов могут связывать один и тот же адрес многоадресной рассылки) и (2) убедиться, что отправляющим сокетам многоадресной рассылки установлен IP_MULTICAST_LOOP (чтобы пакеты были "зациклены" на получателях в одной и той же системе). Если ваше приложение использует один и тот же сокет для отправки и получения многоадресных рассылок, вы должны установить для него оба параметра сокета.
int recv_s = socket(AF_INET, SOCK_DGRAM, 0);
int send_s = socket(AF_INET, SOCK_DGRAM, 0);
u_int yes = 1;
setsockopt(recv_s, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
setsockopt(send_s, IPPROTO_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes));
Почему бы не скачать пробную версию VMWare? Это займет некоторое время, но настройте виртуальную машину. Затем запустите ксерокопии виртуальной машины на одной системе (если можете). У каждого будет виртуальный NIC. Затем вы можете настроить сеть так, чтобы они были доступны в одной сети. Затем проведите тестирование.
Возможно, это не то, что вы ищете, но когда я писал код, который использовал несколько широковещательных и сокетных соединений и тому подобное, я просто создал две виртуальные машины в VMWare, загрузил их с живых компакт-дисков и загрузил свой код. Если ваш код работает в Windows, просто сделайте две установки Windows. VMWare размещает машины в одной подсети, поэтому связь между ними работает нормально, транслируется и все такое. (и я предполагаю многоадресную рассылку, хотя у меня не было прямого опыта с этим.)
Я бы сказал, что проще всего было бы настроить несколько IP-адресов на вашей сетевой карте. Просто убедитесь, что вы слушаете по конкретному адресу, а не по всем.
НТН
Некоторое количество настройки сети необходимо. Если вы не хотите создавать физическую сеть, вы можете добавить несколько IP-адресов к одной сетевой карте. Если ваша машина имеет более одной сетевой карты, вы даже можете создать сеть, используя всего две карты и концентратор. Кроме того, если ваша машина имеет беспроводной интерфейс и проводной интерфейс, то при подключении вашей машины к вашему беспроводному концентратору через беспроводной и проводной интерфейсы вы также получите сеть.
Надеюсь, что одна из этих идей поможет. Пэт О