Iphone 通过AsyncUDPSocket发送时崩溃
我正在尝试通过UDP进行广播。我包括了CFNetworking框架,并将AsyncUDPSocket添加到我的项目中Iphone 通过AsyncUDPSocket发送时崩溃,iphone,objective-c,udp,asyncsocket,Iphone,Objective C,Udp,Asyncsocket,我正在尝试通过UDP进行广播。我包括了CFNetworking框架,并将AsyncUDPSocket添加到我的项目中 #import "AsyncUdpSocket.h" 然后,我创建了一个套接字,如下所示: broadcastSocket = [[AsyncUdpSocket alloc] initWithDelegate:self]; 我将数据发送为: [self.broadcastSocket enableBroadcast:YES error:&error]; [se
#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会崩溃,并且在
- (CFSocketRef)socketForPacket:(AsyncSendPacket *)packet
特别是在
return ([packet->address length] == sizeof(struct sockaddr_in)) ? theSocket4 : theSocket6;
或者它有时也会在以下方面崩溃:
- (void)doSend:(CFSocketRef)theSocket
在
我制作套接字的方式有问题吗?你创建了套接字,但是你创建了
数据包吗?啊,我现在明白了。我更新到AsyncUDPSocket的最新版本,它需要ARC。还有一个警告是,我的调试器中没有出现it问题,这是另一个问题。但是,当查看源代码时,它位于第11行。啊
添加了ARC标志(-fobjc ARC),运行良好 您应该能够简单地使用AsyncUdpSocket的sendData函数发送数据包。它不需要手动构造。代码段不完整,因此在引用数据包时,不清楚它是否已在该点实际初始化。如果它还没有被初始化,或者它已经被释放,那将导致崩溃。我使用的是AsyncUdpSocket的一个实例。您不需要手动构造数据包。非常感谢,您节省了我的时间。我总是在这一行“const void*buf=[theCurrentSend->buffer bytes];”处出错
const void *buf = [theCurrentSend->buffer bytes];