XMPP TLS соединение с SslStream - PullRequest
       26

XMPP TLS соединение с SslStream

1 голос
/ 12 января 2011

Я пытаюсь создать простой клиент xmpp, который подключается к Gtalk.Первая часть рукопожатия, кажется, работает.Для рукопожатия 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, за исключением того, что я переключаюсь с сетевого потока на Sslstream при согласовании TLS.

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

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

1 Ответ

1 голос
/ 13 января 2011

Я бы попробовал использовать одну из существующих библиотек XMPP для .Net:

Даже если вы не используете эти библиотеки, вы получите хорошие идеи, взглянув на код.

В этом случае вам, вероятно, понадобится:

sslStream.AuthenticateAsClient("gmail.com");

, где gmail.com - это имя домена из JID, в который вы пытаетесь войти как.

...