我对网络编程相当陌生,我需要通过 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地址。
- 1 回答
- 0 关注
- 157 浏览
添加回答
举报
0/150
提交
取消