【发布时间】:2011-10-12 06:50:52
【问题描述】:
我正在制作一个简单的 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!");
}
【问题讨论】:
标签: objective-c sockets udp ip cfsocket