2012-05-31 64 views
0

我試圖建立一個TCP連接到本地服務器,並且幾乎所有人都同意Asyncsocket是要走的路,我也是這麼做的。但是,我遇到了最基本的問題:Asyncsocket實例沒有本地或遠程地址。我沒有太多的代碼,但是這是我做的有:Asyncsocket:沒有本地或遠程地址

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    AsyncSocket *socket = [[AsyncSocket alloc] initWithDelegate:self]; 

    [socket connectToHost:@"www.google.com" onPort:80 error:nil]; 
} 

- (BOOL)onSocketWillConnect:(AsyncSocket *)sock { 

    NSLog(@"%@", sock); 
    return YES; 
} 

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port { 

    NSLog(@"%@", host); 
} 

下在控制檯中顯示出來(從NSLog的在onSocketWillConnect):

AsyncSocket 0x298de0本地無處遠程無處已排隊0讀取0寫入,沒有當前讀取,沒有當前寫入,讀取流0x299720未打開,寫入流0x299aa0未打開,未連接

它說「無處」,當然它應該有IP地址,但它不'噸。從網上的例子來看,我的代碼看起來很好,但當我在兩臺電腦和手機上運行時,卻遇到這種「無處」的事情,所以我可能做錯了什麼。任何人有想法?

謝謝!爲了說明:如果我使用錯誤報告(通過將NSError實例傳遞給「connectToHost:onPort:error」和NSLogging),我所得到的全部是(null)

+0

你似乎缺少你想後控制檯日誌(線「以下......」之後)。可能編輯吃了他們。無論如何,如果你修復它,回答你的問題會更容易。 – abarnert

+0

哦,我想編輯刪除它是因爲它被封裝在尖括號中。它現在在那裏,謝謝。 –

回答

0

哇,這很尷尬。我需要製作一個ivar來存儲AsyncSocket,因爲沒有它,它在viewDidLoad完成後超出了範圍,這就是爲什麼我的onSocket:didConnectToHost:端口沒有被調用。