2012-10-31 16 views
0

我試圖檢查使用下面的代碼我的服務器可達性狀態:可達類返回主機狀態爲NotReachable

struct sockaddr_in address; 
address.sin_len = sizeof(address); 
address.sin_family = AF_INET; 
address.sin_port = htons(80); 
address.sin_addr.s_addr = inet_addr("172.21.38.120"); 

Reachability *hostReachable = [Reachability reachabilityWithAddress:&address]; 
[hostReachable startNotifier]; 

,然後檢查主機狀態,但它總是給作爲NotReachable狀態。 我嘗試檢查使用下面的命令服務器是否是從終端可達:

telnet Hostname port 

和終端正在顯示的狀態爲已連接。有什麼我做錯了嗎?提前致謝。

+0

類似的問題已回答這裏http://stackoverflow.com/q/4070754/1495678 – arundevma

回答

0

嘗試將reachabilityWithAddress更改爲reachabilityWithHostname。

參考:https://github.com/tonymillion/Reachability/issues/9 http://lists.apple.com/archives/macnetworkprog/2009/May/msg00056.html

+0

我試了reachabilityWithHostName hostReachable = [Reachability reachabilityWithHostName:@「172.21.38.120:3491」];但後來我無法連接到服務器。 – Sonal0706

+0

下面這段代碼對我有用hostReachable = [Reachability reachabilityWithHostName:@「google.com」];但我如何連接到特定的IP地址 – Sonal0706

+0

嘗試172.21.38.120沒有端口號3491 – arundevma

0

由於升級到了XCode 4.6這一直是我的問題也。我可以讓它在沒有端口的情況下工作 - 例如10.1.1.1工作,10.1.1.1:8000不工作。以前都工作。此外,XCode和模擬器可以緩存結果/值,所以如果它不工作試圖'清潔'或重置您的模擬器