Я полный новичок в сети, однако я программист на ac / c ++ и работаю в objective-c (Это для OSX / iPhone).
Я пытаюсь научиться отправлять волшебный пакет через сокет UDP с помощью cfsocket. Я видел, что есть библиотеки, такие как AsyncUDPSocket, но я не хочу их использовать.
Я попытался посмотреть файл UDPecho яблок, но меня, как новичка, смутило. Я искал в Google ALOT и собрал приведенный ниже код, у меня работает сниффер пакетов, и он не регистрирует что-либо отправляемое. Я понимаю, что в моем коде отсутствует много ошибок, но я просто пытаюсь сначала понять основы.
Это правильный код? (извиняюсь, если это неоднозначно) Я имею в виду, что мне не хватает определенных этапов кода, таких как: 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;
}