Пример туннеля Http - PullRequest
2 голосов
/ 19 июля 2011

Можно ли создать HTTP-туннель в Delphi или C ++?

Мое приложение подключается к нескольким HTTP-серверам, которые не принадлежат компании, в которой я работаю.Из-за этого нашим пользователям необходимо открыть порты брандмауэра, чтобы разрешить эти подключения.Я думал о создании туннеля в моей компании и перенаправлении HTTP-запросов, сделанных моим приложением, через этот туннель.Таким образом, моим клиентам нужно будет открыть только один порт, и туннель будет обрабатывать все запросы.Все запросы выполняются с помощью POST или GET с использованием компонентов indy.

EDIT: Я не могу использовать HTTP-прокси.У некоторых из моих пользователей уже есть собственный HTTP-прокси, и будет невозможно подключиться к двум разным прокси-серверам одновременно.

Ответы [ 3 ]

2 голосов
/ 19 июля 2011

Здесь бесплатный компонент довольно старый, но он работает, вы можете получить вдохновение оттуда

TGpHTTPProxy

Или вы можете попробовать эти образцы

https://sites.google.com/site/delphibasics/home/delphibasicssnippets/examplesocks4proxybyaphex

https://sites.google.com/site/delphibasics/home/delphibasicssnippets/multi-threadedhttpproxyserver

1 голос
/ 04 января 2012

Вот бесплатный HTTP-туннель с открытым исходным кодом и UDP-туннель: http://barbatunnel.codeplex.com/

1 голос
/ 19 июля 2011

Как предполагают Уоррен П. и Роб Кеннеди, вам действительно нужен прокси-сервер. Не пишите туннель самостоятельно, это огромное излишество, и это далеко не просто (написание надежного приложения для сокетов занимает больше времени, чем кажется на первый взгляд).

Если вам нужно что-то мертвое, просто найдите команду datapipe.c или netcat (nc) unix. SSH также может создавать туннели (смотрите документы OpenSSH и PuTTy).

...