开发者

XMPP TLS connection with SslStream

I am trying to create a simple xmpp client that connects to Gtalk. The first part of the handshake seems to work. Ror the TLS handshake I cre开发者_运维技巧ated a client SslStream, connected to the intended server (talk.google.com) and successfully got authenticated .

The first SSlStream.Read is to receive the greeting reply, it went fine . I do a SslStream.write to send my first command, but when i do my Sslstream.Read() to get the reply , i get this error."System.IO.IOException: Unable to read data from the transport connection: An established connection was aborted by the software in your host machine."

Can anyone point me to the right direction?

I am using code very similar to the example on msdn http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.aspx except that I switch from a Network stream to a Sslstream when TLS is negotiated.

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

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


I'd try using one of the existing XMPP libraries for .Net:

  • Jabber-Net: http://code.google.com/p/jabber-net/
  • agsXMPP: http://www.ag-software.de/agsxmpp-sdk/

Even if you don't use of these libs, you'll get some good ideas from looking at the code.

In this case, you probably want:

sslStream.AuthenticateAsClient("gmail.com");

where gmail.com is the domain name from the JID you're trying to log in as.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜