我正在尝试创建一个连接到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");
答案 0 :(得分:1)
我尝试使用.Net的现有XMPP库之一:
即使您不使用这些库,您也可以通过查看代码获得一些好主意。
在这种情况下,您可能想要:
sslStream.AuthenticateAsClient("gmail.com");
其中gmail.com
是您尝试登录的JID的域名。