3

有谁知道在 CocoaAsyncSockets 中接收 UDP 数据的委托方法在获取源地址时是如何工作的?具体方法

-(void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(id)filterContext

该地址返回为NSData*但使用NSUTF8StringEncoding返回解释它nullNSASCIIStringEncoding返回一堆乱码。它应该如何解释?

4

1 回答 1

2

想通了怎么做,数据的形式是struct sockaddr_in*. 导入后<arpa/inet.h>,您可以执行以下操作:

struct sockaddr_in *addr = (struct sockaddr_in *)[address bytes];
NSString *IP = [NSString stringWithCString:inet_ntoa(addr->sin_addr) encoding:NSASCIIStringEncoding];
于 2013-08-01T13:25:40.517 回答