Re: Пересылка UDP пакета из одной сети в другую
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.09.20 14:08
Оценка: 7 (2) +1
Здравствуйте, AlexGin, Вы писали:

AG>Доброе время суток, уважаемые коллеги!


AG>Вот, предположим, что у нас имеется:


AG>a) Первая сеть с адресами: 192.168.1.XX

AG>b) Вторая сеть с адресами: 192.168.2.XX

AG>Также предположим (для упрощения) что есть три компьютера:

AG>1) 192.168.1.1 — первый узел.
AG>2) 192.168.2.1 — второй узел.
AG>3) Имеется шлюз с подсоединением к двум вышеуказаннып сетям -
AG>его адреса: 192.168.1.7 и 192.168.2.7.

AG>Вопрос:

AG>Как (на уровне UDP-сокетов) через этот самый шлюз транслировать UDP пакеты — от 192.168.1.1 к 192.168.2.1 и обратно?

Эээ
я не понял — этот "шлюз" он таки предназначен раутить пакеты сквозь себя или нет?

Если да — то вообще никакой особой заботы не нужно — IP стек всё сделает, просто 192.168.1.1 отправляет пакет на 192.168.2.1, и наоборот.

Если нет — то какая-то программа должна принимать на 192.168.1.7 датаграммки и передавать на 192.168.2.1, и в обратную сторону. Но зачем? (Ниже — с этим вариантом)

AG>Желательно — с привязкой к POSIX реализации.


Вам как — в одну нитку или в две? (два процесса?)
если можно две — тогда каждая из них делает socket(), bind(), и вечный цикл из recv() и sendto(). Отличаются только адреса.
Если одну — то, например, писать на движке событий поверх libuv, ASIO и десятков других аналогов.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.