Как отправить пакет через UDP CFSocket?

Я полный новичок в сети, однако я программист на 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;
}
8
задан luvieere 31 August 2011 в 18:52
поделиться