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

Folosește WTelegram.Client existent și importă biblioteca SOCKS compatibilă aleasă. proxyHost, portul și contul identifică intermediarul; address/port din lambda sunt destinațiile cerute de WTelegram.

CreateConnection trebuie să returneze un TcpClient conectat după negocierea cu proxy-ul. Simpla atingere a portului proxy-ului nu asigură această predare.

Exemplul folosește o metodă sincronă a bibliotecii. Apelul de conectare rămâne blocant chiar dacă rezultatul este împachetat în Task.FromResult; folosește o metodă asincronă acceptată când este nevoie.

Păstrează handlerul și pentru conexiunile ulterioare, nu doar autentificare. Autentificarea contului Telegram rămâne separată de contul SOCKS.

Articole similare