与SslStream的XMPP TLS连接

时间:2011-01-11 22:50:36

标签: c# xmpp ssl sslstream

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

第一个SSlStream.Read是收到问候回复,它很顺利。我做了一个SslStream.write来发送我的第一个命令,但是当我执行我的Sslstream.Read()来获得回复时,我得到了这个错误。“System.IO.IOException:无法从传输连接中读取数据:已建立连接被主机中的软件中止。“

有人能指出我正确的方向吗?

我使用的代码与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");

1 个答案:

答案 0 :(得分:1)

我尝试使用.Net的现有XMPP库之一:

即使您不使用这些库,您也可以通过查看代码获得一些好主意。

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

sslStream.AuthenticateAsClient("gmail.com");

其中gmail.com是您尝试登录的JID的域名。