我完全是网络新手,但我是一名c / c ++程序员,目前正在使用objective-c编程(这是针对OSX / iPhone的)。
我正在尝试学习如何使用cfsocket发送UDP奇妙数据包。我看到有像AsyncUDPSocket库这样的库,但我不想使用这些库。
我尝试查看苹果的UDPecho文件,但作为初学者,它使我感到困惑。我在Google上搜索了很多,然后组合了下面的代码。我运行了数据包嗅探器,但没有注册任何被发送的内容。我知道我的代码缺少很多错误处理,但我只是想先掌握基础知识。
这段代码正确吗?(如果我的问题不太清楚,那就抱歉了)我的意思是是否缺少某些代码阶段,例如: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;
}