通过XMPP与talk.google.com卷曲

我想使用libcurl在C中编写一个简单的google talk客户端.Google talk使用XMPP作为通信协议,它在talk.google.com:5222上进行监听.首先,我尝试使用curl从命令行访问google talk.如果我试试

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

我得到回复302“文件已移动”
如果我尝试使用telnet客户端

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.

有人能指出我的错误吗?

最佳答案 “-d”选项将数据作为HTTP POST发送. XMPP基于原始套接字.因此,您必须使用一个选项,在可用时创建一个像telnet这样的普通持久套接字.但我并不熟悉卷曲.

点赞