Android / Kotlin — Как соединить 2 сокета вместе (прокси бедняка)

#android #sockets #kotlin #proxy

Вопрос:

Занимаясь разработкой Android в Котлине, может ли кто-нибудь дать мне несколько советов о том, как я могу прослушивать TCP-соединение на одном порту и, как только клиент подключится, открыть новое соединение с определенным IP/портом, а затем соединить / соединить оба соединения вместе, чтобы трафик, полученный на сервере, отправлялся клиенту без изменений и наоборот?

В конце концов сервер, к которому я подключусь, будет ожидать сертификат клиента (который необходимо будет предоставить этому приложению), но в настоящее время я просто пытаюсь заставить работать простую функциональность. Поток трафика будет осуществляться по протоколу HTTP, но мне не нужно обрабатывать эти данные — поэтому сокет (а впоследствии SSLSocket), вероятно, проще, чем любой конкретный прослушиватель HTTP.

Намерение состоит в том, чтобы перенаправлять запросы от конкретного приложения на конкретный веб — сервер, которым я управляю, — я хочу принудительно применять сертификаты клиентов на веб-сервере (чтобы для этого у моего подключения клиента приложения была конфигурация), однако конкретное приложение не понимает / не имеет возможности предоставить сведения о сертификатах.