Есть ли способ проверить многоадресный IP-адрес на той же коробке? - PullRequest
12 голосов
/ 12 ноября 2009

Если я хочу протестировать набор многоадресных IP-программ (отправитель / получатель) без необходимости настройки сети, можно ли это сделать на том же устройстве? Если так, что нужно настроить или сделать по-другому?

Ответы [ 5 ]

12 голосов
/ 17 марта 2011

Вы, возможно, уже поняли это (поскольку вопросу уже 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));
0 голосов
/ 13 ноября 2009

Почему бы не скачать пробную версию VMWare? Это займет некоторое время, но настройте виртуальную машину. Затем запустите ксерокопии виртуальной машины на одной системе (если можете). У каждого будет виртуальный NIC. Затем вы можете настроить сеть так, чтобы каждый из них был доступен в одной сети. Затем проведите тестирование.

0 голосов
/ 12 ноября 2009

Необходимо некоторое количество настроек сети. Если вы не хотите создавать физическую сеть, вы можете добавить несколько IP-адресов к одной сетевой карте. Если на вашей машине установлено несколько сетевых карт, вы даже можете создать сеть с двумя картами и концентратором. Кроме того, если ваша машина имеет беспроводной интерфейс и проводной интерфейс, то подключение вашей машины к вашему беспроводному концентратору через беспроводной и проводной интерфейсы также даст вам сеть.

Надеюсь, одна из этих идей поможет. Пэт О

0 голосов
/ 13 ноября 2009

Я бы сказал, что проще всего было бы настроить несколько IP-адресов на вашей сетевой карте. Просто убедитесь, что вы слушаете по конкретному адресу, а не по всем.

НТН

0 голосов
/ 12 ноября 2009

Возможно, это не то, что вы ищете, но когда я писал код, который использовал несколько широковещательных и сокетных подключений и тому подобное, я просто создал две виртуальные машины в VMWare, загрузил их с живых CD и загрузил мой код Если ваш код работает в Windows, просто сделайте две установки Windows. VMWare размещает машины в одной подсети, поэтому связь между ними работает нормально, транслируется и все такое. (и я предполагаю многоадресную рассылку, хотя у меня не было прямого опыта с этим.)

...