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