2010-02-24 7 views
7

Câu hỏi này đã được hỏi ở đây: NSNetservice IP addressChuyển đổi [địa chỉ NSNetservice] để ip địa chỉ chuỗi

và ở đây: iPhone: Bonjour NSNetService IP address and port

Tôi đã sử dụng cả hai để có được những nơi tôi đang ở bây giờ. Vấn đề của tôi là phương pháp sau đây tôi có không khá làm việc:

- (NSString *)getStringFromAddressData:(NSData *)dataIn { 
    struct sockaddr_in *socketAddress = nil; 
    NSString   *ipString = nil; 

    socketAddress = (struct sockaddr_in *)[dataIn bytes]; 
    ipString = [NSString stringWithFormat: @"%s", 
       inet_ntoa(socketAddress->sin_addr)]; ///problem here 
    return ipString; 
} 

Điều này cho phép một lỗi build nói cả "dereferencing con trỏ đến loại không đầy đủ" và "khai Implicit chức năng 'inet_ntoa'" trên cùng một dòng.

Tôi đã kiểm tra và tôi không nghĩ rằng mình thiếu một số loại khung để có được inet_ntoa để hoạt động. Bất kỳ ý tưởng những gì tôi đang làm sai? cảm ơn.

+1

Giá trị inet_ntoa chính xác được khấu hao, hãy sử dụng inet_ntop thay thế! – krasnyk

Trả lời

18

Nếu bạn nhận được lời tuyên bố ngầm của inet_ntoa, bạn có thể cần

#include <arpa/inet.h> 

(Bạn có thể con người inet_ntoa để có được thông tin này và đọc thêm về chức năng đó)

+0

Điều đó hoạt động hoàn hảo. Cảm ơn bạn rất nhiều vì đã trả lời nhanh chóng! – mjdth

+0

Với tha bao gồm bạn đã giúp tôi! Tôi giống như chuyện quái gì đang diễn ra vậy ... –