4

libcurlを使用してC++で簡単なGoogleトーククライアントを作成したいと思います。Googleトークは通信プロトコルとしてXMPPを使用し、talk.google.com:5222でリッスンします。まず、curlを使用してコマンドラインからgoogletalkにアクセスしようとします。やってみたら

curl talk.google.com:5222 -d "<stream:stream to='gmail.com' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' version='1.0'>"

telnetクライアントを使用しようとすると、応答302「ドキュメントが移動しました」が表示されます

telnet talk.google.com 5222

有効なXMPP応答を取得できます。chat.facebook.comにアクセスしようとすると、次のようになります。

curl chat.facebook.com:5222 -d "<stream:stream to='chat.facebook.com'  xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' version='1.0'>"

再び有効なXMPP応答を受け取ります。唯一の問題は、talk.google.comにあります。

誰かが私の間違いを指摘できますか?

4

1 に答える 1

2

「-d」オプションは、データをHTTPPOSTとして送信します。XMPPはrawソケットに基づいています。したがって、利用可能な場合は、telnetのようなプレーンな永続ソケットを作成するオプションを使用する必要があります。しかし、私はカールにそれほど精通していません。

于 2012-11-27T15:04:50.247 に答える