2012-08-08 56 views
-1

可能重複:
iPhone SDK reachabilityWithAddress issue可達性的reachabilityWithAddress不起作用

我試圖確定iPhone可以連接到使用下面的代碼特定的IP地址(簡單的ping):

struct sockaddr_in server_address; 
server_address.sin_len = sizeof(server_address); 
server_address.sin_family = AF_INET; 
server_address.sin_port = htons(8888); 
server_address.sin_addr.s_addr = inet_addr("192.168.105.44"); // ip address of a server on LAN 
Reachability *r = [[Reachability reachabilityWithAddress:&server_address ] retain]; 
NetworkStatus internetStatus = [r currentReachabilityStatus]; 

但它總是說狀態是'可達'無瑕wha我輸入IP地址。我做錯了什麼?爲什麼這不工作?提前致謝。

+0

我不能創建一個新的連接,因爲我必須已經使用AsyncSocket爲相同的ip連接。我只是想檢查一些事件,無論我是否連接。 當我們從服務器中拔出LAN電纜時,不會調用onSocketDidDisconnect委託方法。 – 2012-08-08 11:12:48

回答

1

相同的行爲

+ (Reachability*) reachabilityWithHostName: (NSString*) hostName; 

可達性將始終返回true,不要緊,如果你的HTTP返回代碼將是200或404。如果您無法使用該解決方案張貼王子建議,可以將鏈接

  1. 檢查您的網絡可達性
  2. 消防基於定時器的HTTPRequest並檢查返回代碼

或檢查NetReachability

不知道它是否對您有幫助,因爲它使用相同的框架,我沒有時間自己測試它。