簡単な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!");
}