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 акаунта.

Подобни статии