Objective c 使用cfsocketsenddata发送二进制数据
我尝试为局域网上的唤醒发送UDP包。包的第一部分需要是16进制代码的6*FF,然后是16*mac地址的十六进制代码。如何以十六进制值发送NSString?现在,它将值255发送为32 35,而不是FF 我有以下代码:Objective c 使用cfsocketsenddata发送二进制数据,objective-c,sockets,networking,hex,cfsocket,Objective C,Sockets,Networking,Hex,Cfsocket,我尝试为局域网上的唤醒发送UDP包。包的第一部分需要是16进制代码的6*FF,然后是16*mac地址的十六进制代码。如何以十六进制值发送NSString?现在,它将值255发送为32 35,而不是FF 我有以下代码: NSMutableString *messageData= [NSMutableString new]; [messageData appendString: @"255255255255255255"]; for (int i =
NSMutableString *messageData= [NSMutableString new];
[messageData appendString: @"255255255255255255"];
for (int i = 0; i <= 16; i++) {
[messageData appendString:(@"%@ ",self.macAddress)];
}
char const *messageDataChar = [messageData UTF8String];
CFDataRef Data = CFDataCreate(NULL, (const UInt8*)messageDataChar, strlen(messageDataChar));
NSData *destAddrData = [NSData dataWithBytes:&addr length:sizeof(addr)];
CFSocketError errorDetails = CFSocketSendData(socket, (__bridge CFDataRef) destAddrData, Data, 0);
我需要的是:
0000 ff ff ff ff ff ff aa bb cc dd ee ff aa bb cc dd ................
0010 ee ff aa bb cc dd ee ff aa bb cc dd ee ff aa bb ................
我真的找不到如何在objective C中使用十六进制值。它正是按照您编码它的方式来做的-发送一个ASCII字符串。是的,但我需要发送值为255的二进制字符。我正在把它改成字符**
0000 ff ff ff ff ff ff aa bb cc dd ee ff aa bb cc dd ................
0010 ee ff aa bb cc dd ee ff aa bb cc dd ee ff aa bb ................