我正试着通过UDP进行广播。我包含了CFNetworking框架并将AsyncUDPSocket添加到我的项目中。
#import "AsyncUdpSocket.h"然后,我创建了一个套接字:
broadcastSocket = [[AsyncUdpSocket alloc] initWithDelegate:self];我将数据发送为:
[self.broadcastSocket enableBroadcast:YES error:&error];
[self.broadcastSocket sendData:[@"hello" dataUsingEncoding:NSASCIIStringEncoding] toHost:@"255.255.255.255" port:5538 withTimeout:10 tag:1];但是当我发送数据时,使用EXC_BAD_ACCESS时,AsyncUdpSocket崩溃
- (CFSocketRef)socketForPacket:(AsyncSendPacket *)packet特别是在
return ([packet->address length] == sizeof(struct sockaddr_in)) ? theSocket4 : theSocket6;或者它有时也会崩溃:
- (void)doSend:(CFSocketRef)theSocket在…
const void *buf = [theCurrentSend->buffer bytes];我做插座的方式有问题吗?
发布于 2012-09-21 09:17:48
啊,我现在明白了。我更新到最新版本的AsyncUDPSocket,它需要圆弧。我的调试器中没有弹出它发出的警告,这是另一个问题。然而,当查看源代码时,它在第11行。
添加了ARC标志(-fobjc-arc.),它运行良好!
发布于 2012-09-21 00:53:41
您创建了套接字,但是您是否创建了packet
https://stackoverflow.com/questions/12506002
复制相似问题