我正在尝试通过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];
但是当我发送数据时,AsyncUdpSocket在EXC_BAD_ACCESS崩溃
- (CFSocketRef)socketForPacket:(AsyncSendPacket *)packet
特别是在
return ([packet->address length] == sizeof(struct sockaddr_in)) ? theSocket4 : theSocket6;
或者它有时也会崩溃:
- (void)doSend:(CFSocketRef)theSocket
at
const void *buf = [theCurrentSend->buffer bytes];
我的插座是怎么回事?
答案 0 :(得分:1)
添加了ARC标志(-fobjc-arc),运行正常!
答案 1 :(得分:0)
您创建了套接字,但是您是否创建了packet
?