Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Туннелестроительство

830
25 декабря 2006 года
MVal
76 / / 17.10.2002
Мне нужно пропустить TCP трафик внешнего приложения (в данном случае VNC) через туннель следующегьо вида:

т.е. есть сервер и две клиентские мащины. В классическом случае они должны соединяться на прямую. Но это не возможно, т.к. они могут находиться за НАТом. Направлениями стрелок показано направление коннектов.
Т.е. на стороне клиента 1 - открываем (локально) порт. Из приложения соединяемся с ним. Дальше передаем на сервер. Соединяемся. На стороне клиента 2 - открыт порт в приложении. Надо так-же соединится с сервером и передать то, что пришло на него от клиента 1 в приложение на клиенте 2.
Я так думаю - что это можно как-то сделать на Indy-компанентах, но пока только понял, как делать portmap. А как построить такую схему?
8.8K
25 декабря 2006 года
The_Ice
109 / / 04.04.2006
Если я правильно понял, то тебе нужно просто показать клиенту адрес сервера, а клиент, который к стати тоже сервер, коннектится к этому серваку и все что пришло к нему с подключенного к нему же сокета отправляет это "все" на сервер, а все что пришло от сервера - отправляет клиенту. Если этих клиентов всего два (как на схеме) то тогда это вобще проще простого :) И решение тут в winsocket'ах :)

P.S. Если я правильно понял проблему. (:
830
25 декабря 2006 года
MVal
76 / / 17.10.2002
Ну примерно так.
Клиентов в общем случае может быть больше двух - но на каждую пару можно открывать свои порты (или не открывать - тогда надо сверху писать заголовок пакета, типа кому он предназначен).

Думал или через пару IdTunelMaster - IdTunelSlave (но так и не врубился - как работают эти компаненты). Или по - простому - IdTCPClient- IdTCPServer - с открытием порта и полным комированием контента, который на порт валится. Но может можно попроще?
8.8K
25 декабря 2006 года
The_Ice
109 / / 04.04.2006
я ж говорю - обычные сокеты рулят.Мнение конечно субъективное, но тем не менее - все компоненты типа Indy и т.п. это уже надстройка над обычными... Да и много лишнего кода эти компоненты с собой приносят в ехешник :) Здесь, по-моему, есть статейки на тему сетей - почитай, если затрудняешься писать руками...
2
25 декабря 2006 года
squirL
5.6K / / 13.08.2003
если надо тунель - то google about VPN. только я не понимаю, зачем он тут нужен, если две программы будут обмениваться через сервер?
830
25 декабря 2006 года
MVal
76 / / 17.10.2002
Просто я думаю в последствии придется шифровать данные в OpenSSL - для этого (в частности) индийцы и пригодятся. Они это хорошо умеют. VPN - не спорю - сам бы все сделал, но не тот случай, к сожалению.

Решил пока попробовать по-простому IdTCPClient - IdTCPServer.
Эти компаненты уже использую в другой части проги - т.ч. бинарник потяжелеть (значительно) не должен.

Что делают TIdTunnelMaster - TIdTunnelSlave, кто-нибудь в двух словах расскажите. Применимы они тут или нет.

P.S. Спасибо за советы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог