我正在制作一个简单的 WOL 应用程序。到目前为止,我可以成功创建一个套接字,但是在使用 CFSocketSetAddress 设置地址时,我只能使用我的计算机的网络 ip(WiFi ip = 192.168.0.5)或本地 ip(127.0.0.1)。
对于 WOL,我想将数据发送到广播地址 (255.255.255.255)。如果输入了这个,我将返回错误“无法设置地址”。
我是否误解了 CFSocketSetAddress 的使用,并且地址应该是主机 IP 或目标 IP?在任何一种情况下,我需要做什么,以便我的目标 ip 是广播地址?
下面是我的一些代码:
/*************************************************************************/
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT); //port
inet_aton(IP, &addr.sin_addr);//IP is the host network ip: 192.168.0.5
NSData *address = [NSData dataWithBytes: &addr length: sizeof(addr)];
if (CFSocketSetAddress(WOLsocket, (CFDataRef)address) != kCFSocketSuccess){
NSLog(@"Address could not be set!");
}