2010-02-15 34 views
0

我的程序由2部分組成 - 運行在不同線程上的服務器套接字以及測試服務器的客戶端。我99.9%確定服務器的寫入是正確的(因爲我使用客戶端套接字測試過),它所做的只是返回「hello world」作爲響應。該服務器位於端口3490iphone sdk/mac - 套接字問題

現在我試圖做的是調用服務器以下列方式:

NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"http://localhost:3490"]]; 
    NSString *msg = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSLog(msg); 

但我沒有得到任何迴應。我懷疑問題是與地址http://localhost:3490

此問題出現在Mac上的iPhone上。

任何想法?

感謝

亞歷

我有iPhone和Mac上的這個問題。

回答

0

本地主機有可能解析爲IPv6地址。在轉向NSURLConnection之前,先嚐試使用http://127.0.0.1:3490/

2

首先,您幾乎肯定希望使用+[NSURL URLWithString:]而不是+[NSURL fileURLWithPath:]

其次,因爲-[NSData initWithContentsOfURL:]隱藏了很多關於連接的內容,所以您可以考慮切換到您自己管理的NSURLConnection,至少暫時。它使用的委託方法將使您對過程的各個階段有更多的可見性/控制權。 (以及不阻止您運行此代碼的線程。)

+0

謝謝你,你幫了我很多! – Alex1987