Итак, я создаю систему TcpClient с поддержкой прокси HTTP / s и SOCKS4 / 5, и она работает довольно хорошо, но проблема в том, что SSL-аутентификация очень часто возвращает неожиданные исключения.
var ClientNetworkStream = _TcpClient.GetStream(); //where _TcpClient is a connected TcpClient to lets say a SOCKS4 Proxy
//where url = an Absolute URI of an url
if (!url.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase)) return;//Nothing to do as its not a https url
SslStream sslStream = new SslStream(ClientNetworkStream, false, (sender, cert, chain, err) => true);//create sslStream and ignore cert checking as I do not need it
try {
sslStream.AuthenticateAsClient(url.Host, null, false);
} catch (IOException ex) {
//The handshake packet issue gets thrown here.
}
ЕслиЯ вообще не должен был Аутентифицировать, он бы возвратил тело с сообщением «HTTP-запрос отправлен на порт https», поэтому я предполагаю, что SSLStream действительно необходим.
Кто-нибудь знает, что случилось неправильно?
URL-адресапорт будет: 443 (SSL) И порт прокси обычно будет довольно случайным, эта проблема возникла на: 80, 8080, 8888, 3128, 8118, 1080, 5555, 8123 и многих других
(Да, iveПодтверждено, что он работает с большинством из упомянутых портов на других прокси: https://i.imgur.com/pY2dkGf.png)
Это снимок экрана трассировки стека (не удалось надежно получить копию его вставки): ![enter image description here](https://i.stack.imgur.com/U4OP9.png)