Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   UDP proxy (Borland C++)(help?) (https://forum.antichat.xyz/showthread.php?t=40895)

Jes 26.05.2007 14:21

UDP proxy (Borland C++)(help?)
 
Суть: Решил написать на С простенький udp proxy. для одного клиента пишется за 10 минут.

но как организовать сервер для большого количества клиентов? точнее как заставить его различать , кому именно адресованны пакеты?

_Great_ 26.05.2007 14:22

Составлять таблицу открытых соединений =)

Jes 26.05.2007 22:45

хммм, я продумал принцып...
но он может быть не удобен т к ... приходится использовать несколько(или много) портов...и впринципе
http://img516.imageshack.us/img516/3...5753qa0.th.jpg
И так, приложение - сервер имеет порт с открытым IdUDPServer(обозначен синим цветом), который при запросе с нового ip проводит некую "авторизацию" , и динамически создает сокет и резервирует его для работы с этим IP. Тоесть UdpServer принимает пакет и рересылает его через соответствующий порт...
Тогда все приходящие на порт этого сокета ответы с сервера(server 1),можно будет легко переслать обратно клиенту.Тоесть отпадает необходимость програмно рыться во всех пакетах с серверов и распределять их между клиентами.Но я так и не смог придумать реализацию запроса клиента.
Тоесть: Клиент1 посылает на прокси пакет с информацией и должен послать адрес , куда этот пакет переслать.
Впринципе можно написать клиент для работы в режиме прокси, который бы менял в пакете адрес получателя на адрес прокси , а адрес получателя выделял бы для прокси как адрес для пересылки...
Но такой подход требует весьма масштабного подхода, который выводит проэкт на коммерческий уровень...
более дилетантский подход:
Можно также написать клиент, который перенаправил бы все пакеты на прокси (ну через тот же Hosts например), а вслед за каждым пакетом отправлял бы пакет с адресом для пересылки...

Ну и если такой proxy нужен в узкой специализации (для конкретного торояна, или игры) тоесть конкретный ip и порт, то он требует всего лишь настройки приложения,для которого используется udp proxy ... ( например адрес Геймспая , или еще чего нибуть в другом направлении...)

ps: если б кто-нибуть подсказал более простой способ ,был бы ему оч. благодарен...^^


Время: 18:02