Indy имеет собственные прокси-компоненты, которые делают то, что вы просите.Посмотрите на компоненты TIdMappedPortTCP
и TIdHTTPProxyServer
в качестве отправных точек.
TIdMappedPortTCP
- это прокси общего назначения, который просто передает необработанные данные взад и вперед.Вы можете использовать его событие OnConnect
для динамической настройки целевого хоста / порта для этого соединения (например, путем чтения его с клиента), или вы можете установить его свойства MappedHost
и MappedPort
статически для всех соединений.Вы можете использовать события OnExecute
и OnOutboundData
для изменения данных при их прохождении через прокси-сервер, если это необходимо.
TIdHTTPProxyServer
- это специализированный прокси-сервер только для прокси на основе HTTP, где клиент используетГлаголы HTTP GET
, POST
, HEAD
и CONNECT
, задающие абсолютные URL-адреса для целевого хоста / порта, а затем, при необходимости, передающие заголовки HTTP и данные туда и обратно (CONNECT
обычно используется для проксисоединение SSL / TLS через брандмауэр).