gpt4 book ai didi

c# - 使用 StreamSocket 升级到 SSL

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:00 25 4
gpt4 key购买 nike

我正在研究 WinRT(Windows8 Release Preview)。我有一个 Web 应用程序(实际上是一个更简单的 XMPP 客户端)。

我主要使用 StreamSocket 类来连接 Jabber Server。它给了我一个好的开始。但是当我尝试升级已经连接的套接字以使用 SSL 时遇到了问题。

我使用 StreamSocket.UpgradeToSslAsync实现它。它抛出这样的异常

A method was called at an unexpected time. (Exception from HRESULT: 0x8000000E)

我不知道为什么会这样。我已经按照上面的链接做了所有的事情。我已经成功创建了套接字连接。我可以从 Jabber 服务器接收一些 xml 节。这是它运行时的图片。![在此处输入图片描述][1]

您可以在 new tab 中看到图片.

当我点击 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();
}

请给我一些提示。谢谢。

最佳答案

我也在为 Metro 开发 XMPP 应用程序,服务器连接和协议(protocol)解析器已准备就绪。

我正在使用三个 ManualResetEvents,因此发送、接收和提升不会发生冲突。还要小心,因为 UpgradeToSslAsync 不接受自签名证书,在这种情况下会引发异常。

我真的很想进一步帮助你,但我试图用这个来资助自己,XMPP 库将在应用程序在商店发布后发布

关于c# - 使用 StreamSocket 升级到 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11046655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com