Как эмулировать сеть на локальном хосте?

Как эмулировать сеть на локальном хосте?

Я работаю над проектом, который использует роботов, подключенных к серверу через маршрутизатор. Поскольку я использую multicast, все роботы привязывают свои сокеты к одному и тому же порту (допустим, 61234). Это работает отлично, поскольку у каждого робота есть свой собственный адрес (192.0.1.10:61234, 192.0.1.11:61234, 192.0.1.12:61234 и т. д.).

Теперь я использую симулятор для проведения тестов, поэтому код робота выполняется на компьютере, на котором размещен сервер, а для подключения роботов к серверу я использую localhost.

Проблема в том, что у всех роботов один и тот же адрес 127.0.0.1:61234 и сообщения с сервера доставляются некорректно.

Можно ли эмулировать сеть на компьютере, чтобы каждый из моих эмулируемых роботов имел свой адрес?

решение1

Если у вас есть неиспользуемый сетевой интерфейс, вы можете вручную назначить ему несколько IP-адресов одновременно (через «Расширенные настройки TCP/IP»):

введите описание изображения здесь введите описание изображения здесь

Если вынеесть неиспользуемый сетевой интерфейс, есть несколько способов его создать: вы можете использовать для этой цели интерфейс VirtualBox "Host-only network"; вы можете использовать Hyper-V "internal" vSwitch; или вы можете установить "Microsoft Loopback Adapter". Затем назначьте ему несколько IP-адресов, как указано выше.

Это на самом деле не эмулирует целоесеть,поскольку все адреса, назначенные таким образом, будут принадлежать одной и той же системе (как петлевые адреса) – но это должно подойти для ваших целей.

Связанный контент