2010-11-19 84 views
3

我試圖通過指定IP實現兩個設備之間的基本信息pasing。當一臺設備告訴它監聽套接字聽如下:聽iPhone接收連接,但新的套接字不調用委託的CocoaASyncSocket

UInt16 port = 59647; 
NSError *err = nil; 
[socket acceptOnPort:port error:&err]; 

didAcceptNewSocket委託正確調用,並應返回一個新的套接字連接IP:端口。然而,據我所知它正在這樣做,然後,新的套接字應該然後調用didConnectToHost,據我所知它不是。

didConnectToHost正確實現,因爲啓動與其套接字的連接的設備在連接建立後正確調用它。

我不是從幾NSLogs在做didAcceptNewSocket拋開任何東西,舊的監聽套接字設置到新的(因爲它沒有經過必要的,有它分配給不同的變量之前沒有任何改變,也不應該是)。

什麼可以使我在聽方的新套接字不叫這個代表?

回答

1

既然你正在處理一個客戶端和服務器,它認識到,只有在客戶端將調用socket:didConnectToHost:port:委託方法,因爲它是誰連接到主機(而不是其他方式)的客戶是非常重要的。

在服務器上,將偵聽套接字作爲第一個參數調用socket:didAcceptNewSocket:委託方法。

+0

從我實際上做到這一點已經過去了,但事後看來這似乎很合理。 – JKomusin 2013-04-16 15:30:10