2009-11-21 133 views
1

我正在開發聊天應用程序。如何獲取iPhone聊天應用程序的端口號

但現在聊天是可能的只有谷歌,因爲我知道只有谷歌的端口號。

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是特定於谷歌的人」?)

+0

這屬於superuser.com – 2009-11-22 02:03:04

+0

它可以在任一.. – 2009-11-22 13:36:21

回答

2

5222/tcp是XMPP的默認端口,但您的實現可能有不同的端口。爲了找出答案,你需要DNS SRV查詢_xmpp-client._tcp.YOURDOMAIN,在那裏你用你試圖連接的域替換YOURDOMAIN。這將返回0+記錄,其中包含主機名/端口組合以便連接。如果返回0記錄,則假定端口爲5222.

例如,我想連接到GoogleTalk服務器,並使用帳戶[email protected]登錄。我的客戶端執行,可與挖模擬在命令行上像這樣的查詢:

% 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

的TCP連接 talk.l.google.com

要從代碼中進行SRV查詢,請查看this answer,它依賴於DNSServiceQueryRecord。

0

5222是XMPP的默認端口,但 您的實現可能有一個不同的 。爲了找出答案,您可以爲 DNS服務器查詢 _xmpp-client._tcp.DOMAIN_Name,您可以將DOMAIN_Name替換爲您嘗試連接的 域(例如, gmail.com,google.com,yahoo。 COM)。此 將返回0+記錄,其中 主機名/端口組合的連接方式爲 。如果你得到0記錄, 假設端口5222.

相關問題