为了账号安全,请及时绑定邮箱和手机立即绑定

TLS - TCP 客户端在 SslStream.AuthenticateAsClient

TLS - TCP 客户端在 SslStream.AuthenticateAsClient

C#
慕尼黑的夜晚无繁华 2022-10-23 16:22:36
我对网络编程相当陌生,我需要通过 TLS 连接 TCP 客户端的帮助。我得到了一个已经编码的项目,它附带了证书和提供的公钥。我已经在我的本地机器上安装了 pfx 证书,并编写了一个指向本地主机的新 TCP 侦听器/服务器和 TCP 客户端,如下所示:客户端static void Main(string[] args)    {        string server = "localhost";        TcpClient client = new TcpClient(server, 5997);        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;        //client.Connect(server, 5997);//connection without TLS - authenticating properly        using (SslStream sslStream = new SslStream(client.GetStream(), false,            new RemoteCertificateValidationCallback(ValidateServerCertificate), null))        {            try            {                var servername = "myAuthenticatingServerName";//the server name must be the same as the one on the server certificate                sslStream.AuthenticateAsClient(servername);                try                {                    Console.WriteLine("Client Connected...");                    // Encode a test message into a byte array.                    // Signal the end of the message using the "<EOF>".                    byte[] messsage = Encoding.UTF8.GetBytes("Hello from the client.<EOF>");                    // Send hello message to the server.                     sslStream.Write(messsage);                    sslStream.Flush();                    // Read message from the server.                    string serverMessage = ReadMessage(sslStream);                    Console.WriteLine("Server says: {0}", serverMessage);                    // Close the client connection.                    client.Close();                    Console.WriteLine("Client closed.");                }                catch (Exception e)                {                    Console.WriteLine("Error..... " + e.StackTrace);                }            }     
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

在服务器端,您正在侦听端口 8080,在客户端,您正在连接到端口 5997。更具体地说,您的服务器正在托管 [YourIP]:8080并且您的客户端正在尝试连接到 [YourIP]:5997



此外,Tls 和 SSL 通常用于端口 443。客户端和服务器端口需要相同,以便它们可以相互连接。




也不确定c#是否将'localhost'识别为'YourIP'最好打开你的cmd(如果你使用的是Windows)输入'ipconfig'点击回车并查找并使用你的IPv4地址


查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信