Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.18;
Скачать: CL | DM;

Вниз

Как это называется?   Найти похожие ветки 

 
AnatV   (2007-12-12 11:57) [0]

Мне это не приснилось? Видел когда-то такой пример, что делался некий туннель, смысл которого сводился к тому, что на компьютере запускалась программа и она все входящие соединения на некий порт локального адреса перебрасывала на другой адрес. Ну вроде того, что например мы указываем в почтовом клиенте адрес localhost:1234 а все соединения приходящие перебрасывались на mail.maildomain.com:4321. При этом это не было отдельным mail-сервром и mail-клиентом в программе. Видел я такое когда-то очень давно кажется в примерах для Indy. Такое существует, если да, то как это называется?


 
Anatoly Podgoretsky ©   (2007-12-12 12:08) [1]

Виртуальный сервер, прокси-сервер, порт форвардинг.


 
Сергей М. ©   (2007-12-12 12:18) [2]


> AnatV   (12.12.07 11:57)


Поясни, каков прикладной смысл ожидается тобой в такой "переброске" ?
От этого и решение зависит.


 
MetalFan ©   (2007-12-12 12:47) [3]

http туннель например?
как работает:
1. локальный сервер(ЛС) принимает http запросы(пакеты), упаковывает(и возможно зашифровыват).
2. ЛС отсылает пакеты на некий внешний сервер(ВС) в и-нете
3. ВС распаковывает запрос посылает по нужному адресу
4. ВС принимается ответ, упаковывает, пересылает ЛС
5. ЛС распаковывает ответ, отдает локальному клиенту.
таким образом локальному клиенту (fe:браузер) работа с внешним сервером (http) получается прозрачной.

для чего используется: например для обхода на работе запрета доступа к нек.сайтам


 
AnatV   (2007-12-12 13:00) [4]

Посмотрел в интернете - кажется нашел название - это Port Mapping было, в инди кажется и был такой класс.

Но меня интересует сам процесс этого. Задача такая, нужно отловить пакет - и исправить в нем допустим 5 байт, все остальное оставить как есть.

Если представить абстрактно сам такой процесс, то это: отдельно сервер, отдельно клиент - и сервер принимает все подключения и перебрасывает данные на уже подключенный клиентский сокет, ну и наоборот - это так?


 
Eraser ©   (2007-12-12 15:04) [5]


> AnatV   (12.12.07 11:57) 

вот пример на Indy

   // Port Mapping.
   OutboundClient := TIdTCPClient.Create(Self);
   try
     OutboundClient.Host := ; // IP.
     OutboundClient.Port := ; // Port.
     OutboundClient.ConnectTimeout := DEFAULT_CONNECTION_TIMEOUT;
     OutboundClient.ReadTimeout := DEFAULT_READ_TIMEOUT;

     OutboundClient.Connect;
     OutboundClient.Socket.UseNagle := False;

     while AContext.Connection.Connected do
     begin
       AContext.Connection.IOHandler.CheckForDataOnSource(1);
       FNetData := AContext.Connection.IOHandler.InputBufferAsString;
       if Length(FNetData) > 0 then
       begin
         OutboundClient.IOHandler.Write(FNetData);
       end;
       OutboundClient.IOHandler.CheckForDataOnSource(1);
       FNetData := OutboundClient.IOHandler.InputBufferAsString;
       if Length(FNetData) > 0 then
       begin
         AContext.Connection.IOHandler.Write(FNetData);
       end;
     end;
   finally
     OutboundClient.Free;
   end;


 
Eraser ©   (2007-12-12 15:04) [6]

естесственно данный код нужно выполнять в OnExecute сервера.



Страницы: 1 вся ветка

Текущий архив: 2009.01.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1227005376
Knight
2008-11-18 13:49
2009.01.18
Откуда это TKGSFormEdge?


15-1226943419
Маэстро
2008-11-17 20:36
2009.01.18
Почему не дают больничный когда депрессия?


15-1226316049
aSa
2008-11-10 14:20
2009.01.18
Компонент как Object Inspector


1-1205929808
Domkrat
2008-03-19 15:30
2009.01.18
Шоткаты


2-1228492011
dbgrid
2008-12-05 18:46
2009.01.18
Как определить на какой строке грида нах-ся курсор?