如何获取iPhone聊天应用程序的端口号

时间:2009-11-21 22:14:36

标签: ios xmpp xmpp4r

我正在开发一个聊天应用程序。

但是现在只有谷歌可以聊天,因为我只知道google的端口号。

xmppClient = [[XMPPClient alloc] init];
[xmppClient addDelegate:self];

// Replace me with the proper domain and port.
// The example below is setup for a typical google talk account.
[xmppClient setDomain:@"talk.google.com"];
[xmppClient setPort:5222];

您可以看到,谷歌已将5222设置为端口号。

我想为雅虎设置端口号,windows messenger&其他热门网站,我怎样才能得到所有这些?

(是这样的 - “XMPP特定于Google的”?)

3 个答案:

答案 0 :(得分:4)

Kraken's Openfire Properties Page包含您需要的端口和域信息。只需重复使用并尝试使用您的应用程序。

答案 1 :(得分:2)

5222 / tcp是XMPP的默认端口,但您的实现可能有不同的端口。要查找,请对_xmpp-client._tcp.YOURDOMAIN进行DNS SRV查询,将YOURDOMAIN替换为您尝试连接的域。这将返回0+记录,这些记录具有用于连接的主机名/端口组合。如果你得到0条记录,则假设是5222端口。

例如,我想连接到GoogleTalk服务器,并使用帐户foo@gmail.com登录。我的客户端执行可以在命令行上使用dig模拟的查找,如下所示:

% dig +short -t SRV _xmpp-client._tcp.gmail.com.
20 0 5222 talk1.l.google.com.
20 0 5222 talk4.l.google.com.
5 0 5222 talk.l.google.com.
20 0 5222 talk3.l.google.com.
20 0 5222 talk2.l.google.com.

优先级最低的数字为5 0 5222 talk.l.google.com.,这意味着您在端口5222上打开了与talk.l.google.com的TCP连接。

要从代码中进行SRV查询,请查看this answer,它依赖于DNSServiceQueryRecord。

答案 2 :(得分:0)

  

5222是XMPP的默认端口,但是   你的实施可能有一个   不同的。为了找到答案,你做了一个   DNS服务器查询   _xmpp-client._tcp.DOMAIN_Name,将DOMAIN_Name替换为   您尝试连接的域名(例如   gmail.com,google.com,yahoo.com)。这个   将返回0+记录   hostName / port组合如何   连接。如果你得到0条记录,   假设端口5222。