2010-02-24 14 views
7

To pytanie zostało już zadawane tutaj: NSNetservice IP addressKonwersja adresów NSNetservice [], aby adres IP ciąg

i tutaj: iPhone: Bonjour NSNetService IP address and port

Używałem zarówno tych, aby uzyskać gdzie jestem teraz. Mój problem jest następujący sposób mam nie do końca pracy:

- (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; 
} 

To daje błąd kompilacji mówiąc zarówno „dereferencji wskaźnik do niepełnej typu” i „niejawny deklarację funkcji«inet_ntoa»” na tej samej linii.

Sprawdziłem i nie sądzę, że brakuje mi jakiegoś schematu, aby zadziałało inet_ntoa. Masz pojęcie, co robię źle? dzięki.

+1

Aktywnie inet_ntoa jest zamortyzowana, zamiast tego użyj inet_ntop! – krasnyk

Odpowiedz

18

Jeśli otrzymujesz niejawny deklarację inet_ntoa, prawdopodobnie trzeba

#include <arpa/inet.h> 

(Można człowiekowi inet_ntoa aby uzyskać te informacje i dowiedzieć się więcej o tej funkcji)

+0

To działało idealnie. Dziękuję bardzo za szybką reakcję! – mjdth

+0

Dzięki tym pomocom pomogłeś mi! Byłem jak to, co się dzieje ... –