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