【发布时间】:2011-07-24 03:39:29
【问题描述】:
我完全是网络新手,但我是一名 c/c++ 程序员,并且正在使用 Objective-c(这是针对 OSX/iPhone)。
我正在尝试学习如何使用 cfsocket 发送带有 UDP 套接字的魔术包。我已经看到有 AsyncUDPSocket 库之类的库,但是我不想使用这些库。
我试图查看苹果的 UDPecho 文件,但作为初学者,它确实让我感到困惑。我用谷歌搜索了很多,我把下面的代码放在一起,我有一个数据包嗅探器正在运行,它没有注册任何正在发送的东西。我知道我的代码缺少很多错误捕获功能,但我只是想先了解基础知识。
这段代码对吗? (抱歉,如果这个接缝模棱两可)我的意思是我错过了代码的某些阶段,例如:CFSocketSetAddress?
如果有人知道任何非常好的教程会有所帮助。
非常感谢任何帮助,因为我是这方面的初学者。
谢谢
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
CFSocketRef WOLsocket;
WOLsocket = CFSocketCreate(kCFAllocatorDefault, PF_INET, SOCK_DGRAM, IPPROTO_UDP, 0, NULL, NULL);
if ( socket == NULL) {
NSLog(@"CfSocketCreate Failed");
}else{
if( socket ) {
NSLog(@"Socket created :)");
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(9); //port
inet_aton("255.255.255.255", &addr.sin_addr); //ip adress
char ethadd []= "helloworld";
CFDataRef Data = CFDataCreate(NULL, (const UInt8*)ethadd, sizeof(ethadd));
CFSocketSendData(socket,NULL, Data, 0);}
}
[pool drain];
return 0;
}
【问题讨论】: