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();

Use o WTelegram.Client existente e importe a biblioteca SOCKS compatível escolhida. proxyHost, a porta e a conta identificam o intermediário; address/port da função lambda são os destinos solicitados pelo WTelegram.

CreateConnection precisa retornar um TcpClient conectado após a negociação com o proxy. Chegar apenas à porta do proxy não oferece essa passagem.

O exemplo usa um método síncrono da biblioteca. Encapsular o resultado em Task.FromResult não torna a conexão não bloqueante; use um método assíncrono compatível quando precisar.

Mantenha o handler para as conexões posteriores e para o login. A autenticação da conta do Telegram continua separada da conta SOCKS.

Artigos relacionados