Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 通过AsyncUDPSocket发送时崩溃_Iphone_Objective C_Udp_Asyncsocket - Fatal编程技术网

Iphone 通过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

我正在尝试通过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会崩溃,并且在

- (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];