Converting [NSNetservice addresses] to ip address string
This question was already asked here: NSNetservice IP address
and here: iPhone: Bonjour NSNetService IP address and port
I've used both of those to get where I'm at now. My problem is the following method I have doesn't quite work:
- (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;
}
This gives a build error saying both "Dereferencing pointer to incomplete type" and "Implicit declaration of function 'inet_ntoa'" on the same line.
I've checked and I don't think I'm missing some type of framework to get inet_ntoa
to work. Any idea what I'm 开发者_开发知识库doing wrong? thanks.
If you're getting implicit declaration of inet_ntoa, you probably need
#include <arpa/inet.h>
(You can man inet_ntoa to get this info and read more about that function)
FWIW I've posted an updated code snippet for handling NSNetService address resolution over at
iPhone: Bonjour NSNetService IP address and port.
精彩评论