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 της lambda είναι οι προορισμοί που ζητά το WTelegram.

Το CreateConnection πρέπει να επιστρέφει συνδεδεμένο TcpClient μετά τη διαπραγμάτευση με τον proxy. Η πρόσβαση μόνο στη θύρα του proxy δεν παρέχει αυτή την παράδοση.

Το παράδειγμα χρησιμοποιεί σύγχρονη μέθοδο της βιβλιοθήκης. Η κλήση σύνδεσης εξακολουθεί να μπλοκάρει ακόμη κι αν το αποτέλεσμά της τυλιχτεί σε Task.FromResult· χρησιμοποιήστε υποστηριζόμενη ασύγχρονη μέθοδο όταν χρειάζεται.

Διατηρήστε τον handler τόσο για μεταγενέστερες συνδέσεις όσο και για τη σύνδεση λογαριασμού. Η ταυτοποίηση του λογαριασμού Telegram παραμένει ξεχωριστή από τον λογαριασμό SOCKS.

Σχετικά άρθρα