使用 StreamSocket 升级到 SSL
本文关键字:SSL StreamSocket 使用 | 更新日期: 2023-09-27 18:37:22
我正在研究WinRT(Windows8 Release Preview)。我有一个Web应用程序(实际上,一个更简单的XMPP客户端)。
我主要使用 StreamSocket 类来连接 Jabber 服务器。这给了我一个良好的开端。但是当我尝试升级已连接的套接字以使用 SSL 时,我遇到了一个问题。
我使用 StreamSocket.UpgradeToSslAsync 来实现它。 它抛出这样的异常
在意外的时间调用了一个方法。(HRESULT的例外情况: 0x8000000E)
我不知道为什么会这样。我已经完成了上述链接的所有操作。我已经创建了连接成功的套接字。我可以从Jabber服务器接收一些xml节。这是它运行时的图片。![在此输入图像描述][1]
您可以在新选项卡中看到图片。
当我单击 UpToSSL 按钮时,它会崩溃并抛出上述异常。
以下是更简单的版本代码:
// xmpp is my CXMPP client class
private void StartTlsBtn_Click(object sender, RoutedEventArgs e)
{
xmpp.SendXml("<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls' />");
}
// it works fine, and i have got the reponse from server:
// <proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
// next step i should upgrade my sockey connection to ssl
private void UpSslBtn_Click(object sender, RoutedEventArgs e)
{
xmpp.UpToSsl();
}
async public void UpToSsl()
{
SendEvent.WaitOne();
SendEvent.Reset();
// private StreamSocket ClientSock;
await ClientSock.UpgradeToSslAsync(SocketProtectionLevel.Ssl, ClientSock.Information.RemoteHostName);
isSsl = true;
SendEvent.Set();
}
请给我一些提示。谢谢。
我也在为地铁开发XMPP应用程序,服务器连接和协议解析器已准备就绪。
我正在使用三个手动重置事件,因此发送、接收和提升不会发生冲突。还要小心,因为UpgradeToSslAsync不接受自签名证书,在这种情况下会引发异常。
我真的很想进一步帮助您,但我试图用这个为自己提供资金,XMPP 库将在商店中发布应用程序后发布