Здравствуйте, netch80, Вы писали:
... AG>>Вопрос: AG>>Как (на уровне UDP-сокетов) через этот самый шлюз транслировать UDP пакеты — от 192.168.1.1 к 192.168.2.1 и обратно?
N>Эээ N>я не понял — этот "шлюз" он таки предназначен раутить пакеты сквозь себя или нет?
Да, именно так.
N>Если да — то вообще никакой особой заботы не нужно — IP стек всё сделает, просто 192.168.1.1 отправляет пакет на 192.168.2.1, и наоборот.
Сети не доступны таким образом (простой route здесь не пройдет).
N>Если нет — то какая-то программа должна принимать на 192.168.1.7 датаграммки и передавать на 192.168.2.1, и в обратную сторону. Но зачем? (Ниже — с этим вариантом)
Именно нет. Затем — что иниче (ИМХО) как решить данную проблему, если речь идет о разных сетях?
Кроме всего прочего, иногда потребуется переключить эту схему (при случае, если вторая сеть станет уже не 192.168.2.XX а, например, 192.168.22.XX).
AG>>Желательно — с привязкой к POSIX реализации.
N>Вам как — в одну нитку или в две? (два процесса?) N>если можно две — тогда каждая из них делает socket(), bind(), и вечный цикл из recv() и sendto(). Отличаются только адреса.
Да, это понятно, в смысле что это традиционная работа с UDP сокетом.
N>Если одну — то, например, писать на движке событий поверх libuv, ASIO и десятков других аналогов.