ios - 如何从 CocoaAsyncUDPSocket 获取地址

标签 ios objective-c udp cocoaasyncsocket

<分区>

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

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

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

最佳答案

弄清楚怎么做了,数据是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];

关于ios - 如何从 CocoaAsyncUDPSocket 获取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993345/

相关文章:

ios - RestKit 处理不同的 HTTP 状态代码

ios - MKCoordinateSpan 背后的逻辑

javascript - 使用 javascriptcore 框架调用 javascript 函数将 [object Object] 返回给 JSValue

python - 尽管有多个套接字,但所有接口(interface)都未被使用

ios - CAShapeLayer 线条的圆角

ios - 在 ReactiveCocoa 中链接依赖信号

objective-c - 从 iOS 的用户语言获取工作日数组?

iphone - 当表格离开然后返回时,UITableView 单元格消失

linux - 如何获取 UDP 套接字的排队数据量?

sockets - 带有 UDP 数据报的 SO_REUSEADDR - 资源不可用