Création d'une connexion client TCP avec SSL
Question
J'essaie de créer une connexion TCP et d'envoyer / lire des données à l'aide de SSL, mais je n'ai pas réussi à le faire.
Ce que j'aimerais faire est quelque chose comme ceci:
TcpClient _tcpClient = new TcpClient("host", 110);
BinaryReader reader =
new BinaryReader(new System.Net.Security.SslStream(_tcpClient.GetStream(), true));
Console.WriteLine(reader.ReadString());
Je n'ai pas eu de chance avec ça cependant. Une exception est générée lors de la création de BinaryReader.
Est-ce que quelqu'un connaît un exemple simple qui fait cela? Je ne suis pas intéressé à écrire le côté serveur de cette tâche, juste le client.
La solution
BinaryReader lit les types de données primitifs sous forme de valeurs binaires dans un codage spécifique. C’est ce que votre serveur envoie?
Sinon, utilisez StreamReader:
TcpClient _tcpClient = new TcpClient("host", 110);
StreamReader reader =
new StreamReader(new System.Net.Security.SslStream(_tcpClient.GetStream(), true));
Console.WriteLine(reader.ReadToEnd());
Autres conseils
Je ne suis pas tout à fait sûr que cela fonctionnera pour votre application, mais je vous conseillerais de jeter un coup d'œil à stunnel:
http://www.stunnel.org
Je l'ai utilisé pour envelopper des connexions TCP existantes dans le passé.