2011-01-11 97 views
1

我想创建一个简单的xmpp客户端连接到Gtalk。 握手的第一部分似乎工作。 Ror TLS握手我创建了一个客户端SslStream,连接到预期的服务器(talk.google.com)并成功通过身份验证。与SslStream的XMPP TLS连接

第一个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

我会尝试使用.NET中已有的XMPP库之一:

即使你不”使用这些库,你会从查看代码中获得一些好的想法。

在这种情况下,你可能想:

sslStream.AuthenticateAsClient("gmail.com"); 

其中gmail.com从JID你试图登录的域名。

+0

我看了一下这些库。我试图从头开始做一个练习,因为我想了解更多关于xmpp的知识。我已经尝试过gmail.com,但它有同样的问题。 – Marcom 2011-01-12 22:11:09