Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
2-1228249482
ИванН
2008-12-02 23:24
2009.01.18
TSpeedButton


4-1204580990
BBCHa
2008-03-04 00:49
2009.01.18
Как изменить системное время


15-1227203696
Andy BitOff
2008-11-20 20:54
2009.01.18
Опять Виста...


15-1227583427
Slider007
2008-11-25 06:23
2009.01.18
С днем рождения ! 25 ноября 2008 вторник


2-1228493669
Смирнов Сергей
2008-12-05 19:14
2009.01.18
Поддержка Proxy





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский