1

我正在尝试创建一个连接到 Gtalk 的简单 xmpp 客户端。握手的第一部分似乎有效。Ror TLS 握手我创建了一个客户端 SslStream,连接到预期的服务器 (talk.google.com) 并成功获得了身份验证。

第一个 SSlStream.Read 是接收问候回复,一切正常。我执行 SslStream.write 来发送我的第一个命令,但是当我执行 Sslstream.Read() 来获取回复时,我收到此错误。“System.IO.IOException: Unable to read data from the transport connection: An installed主机中的软件中断了连接。”

谁能指出我正确的方向?

我使用的代码与 msdn http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspx上的示例非常相似, 除了当 TLS 是时我从网络流切换到 Sslstream协商的。

 netStream.Flush(); 
 sslStream = new SslStream(netStream,               
               true,
               new RemoteCertificateValidationCallback(ValidateServerCertificate),
               null
               );

  sslStream.AuthenticateAsClient("talk.google.com");
4

1 回答 1

1

我会尝试将现有的 XMPP 库之一用于 .Net:

即使您不使用这些库,您也会从查看代码中获得一些好主意。

在这种情况下,您可能想要:

sslStream.AuthenticateAsClient("gmail.com");

gmail.com您尝试登录的 JID 中的域名在哪里。

于 2011-01-12T22:00:36.777 回答