iPhone: Bonjour NSNetService adresse IP et le port

Excuse mon iPhone/Objective-C état de novice s'il vous plaît!

J'ai trouvé mon serveur HTTP à l'aide de NSNetServiceBrowser, mais maintenant je veux juste l'adresse IP et le port du service trouvé.

J'ai quelque chose comme ce qui suit dans mon délégué méthode:

NSNetService* server = [serverBrowser.servers objectAtIndex:0];

NSString            *name = nil;
NSData              *address = nil;
struct sockaddr_in  *socketAddress = nil;
NSString            *ipString = nil;
int                 port;
uint                 i;
for (i = 0; i < [[server addresses] count]; i++)
{
    name = [server name];
    address = [[server addresses] objectAtIndex:i];
    socketAddress = (struct sockaddr_in *)
    [address bytes];
    ipString = [NSString stringWithFormat: @"%s",
                inet_ntoa (socketAddress->sin_addr)];
    port = socketAddress->sin_port;
    NSLog(@"Server found is %s %d",ipString,port);
}

mais la boucle n'est jamais entré, même si le délégué est appelé. Des idées? Merci!

Comme un autre commentaire, pour la boucle que vous avez là est considéré comme une mauvaise forme (et lent). Vous devez utiliser le renforcement de la boucle for: for (NSData *addressData dans [serveur addressses]) { ...

OriginalL'auteur Nicholas Gresham | 2009-06-02