client.TcpHandler = (address, port) =>
{
    var proxy = new Socks5ProxyClient(
        proxyHost, proxyPort, proxyUsername, proxyPassword);
    return System.Threading.Tasks.Task.FromResult(
        proxy.CreateConnection(address, port));
};
await client.LoginUserIfNeeded();

Используйте имеющийся WTelegram.Client и импортируйте выбранную совместимую библиотеку SOCKS. proxyHost, порт и учётная запись обозначают посредника; address/port лямбды — адресаты, запрошенные WTelegram.

CreateConnection должен вернуть подключённый TcpClient после согласования с прокси. Одного достижения порта прокси недостаточно для такой передачи.

Пример использует синхронный метод библиотеки. Вызов соединения продолжает блокировать, даже если результат обёрнут в Task.FromResult; при необходимости используйте поддерживаемый асинхронный метод.

Сохраните обработчик и для последующих соединений, а не только входа. Аутентификация учётной записи Telegram остаётся отдельной от учётной записи SOCKS.

Похожие статьи