我试图了解 SSL 的工作原理。在我希望制作一个支持 SSL 的小型 FTP 客户端时,我遇到了一些问题:
TcpClient FtpConnection = new TcpClient(FtpServer, FtpPort);
NetworkStream FtpStream = FtpConnection.GetStream();
StreamReader FtpReader = new StreamReader(FtpStream);
FtpWriter = new StreamWriter(IrcStream);
send_cmd("AUTH SSL");
send_cmd 只是一个 FtpWriter.WriteLine(text); FtpWriter.Flush(); 功能。
我的“问题”是这样的:首先我需要建立一个到 FTP 的(非 ssl)连接,然后告诉它建立一个 ssl 连接(AUTH SSL),然后我想我需要建立一个新的连接 - 某事喜欢:
TcpClient client = new TcpClient(FtpServer, FtpPort);
SslStream sslStream = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
try
{
sslStream.AuthenticateAsClient("foobar");
}
catch (AuthenticationException e)
{
MessageBox.Show("Authentication failed - closing the connection.");
client.Close();
return;
}
取自 msdn。由于意外的数据包格式(我尝试过使用谷歌搜索,但所有人都说这是因为作者连接到了错误的端口),我一直在握手失败,我认为这是:连接不是 ssl,直到 AUTH SSL 发送到它。所以我的问题是,我将如何将其设为“混合”连接,以便与服务器建立 SSL 连接?
任何帮助是极大的赞赏!