私は単純なWOLアプリケーションを作っています。 これまではソケットを正常に作成できましたが、CFSocketSetAddressを使用してアドレスを設定するときは、自分のコンピュータのネットワークIP(WiFi ip = 192.168.0.5)またはローカルIP(127.0.0.1)しか使用できません。ホストコンピュータIPではない場合、CFSocketSetAddressは失敗しますか?
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!");
}
私はできれば、私はこの答えにダースupvotesを与えるだろう!ありがとう! –
本当に助けてくれてうれしい! – Alex