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
で
const void *buf = [theCurrentSend->buffer bytes];
ソケットの作成方法に何か問題がありますか?