CFSocketCreate

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • CFSocketCreate

    Hallo, ich habe bisher mit sockets nur richtig in php gearbeitet, würde sie jetzt aber auch gerne in cocoa (touch) verwenden. Genauergesagt würde ich jetzt gerne den folgenden befehl in cocoa umsetzen:

    Quellcode

    1. $socket = socket_create(AF_INET, SOCK_DGRAM, getprotobyname('udp'));
    (PHP)
    Für Cocoa touch habe ich nur "CFSocketCreate" gefunden, aber dort sind wesentlich mehr Attribute als bei PHP und ich weis nicht richtig was ich dort einsetzen soll, kann mir jemand helfen oder ist das garnicht die Richtige Funktion?
    Windows, nein danke...
  • was für ein Zufall...habe mich heute auch mit den Sockets beschäftigt...allerdings kommt mein Code noch aus alten Studi- und Unix-Zeiten...aber es funktioniert auch mit OS X


    C-Quellcode

    1. #include <sys/socket.h>
    2. #include <netinet/in.h>
    3. #include <netdb.h>
    4. [...]
    5. struct sockaddr_in sin;
    6. int port=60001;
    7. int err, t = 1;
    8. // Open a socket
    9. socketHandle = socket(AF_INET, SOCK_DGRAM, 0);
    10. if(socketHandle < 0)
    11. {
    12. close(socketHandle);
    13. NSLog(@"Error 1 while opening socket");
    14. }
    15. // bind the socket to an Address and Port
    16. sin.sin_family = AF_INET;
    17. sin.sin_addr.s_addr = INADDR_ANY;
    18. sin.sin_port = htons(port);
    19. if((err = bind(socketHandle, (const struct sockaddr *)&sin, sizeof(sin))) != 0)
    20. {
    21. close(socketHandle);
    22. NSLog(@"Error 2 while opening socket");
    23. }
    Alles anzeigen


    hoffe, das hilft. Wenn jemand eine "richtige" Obj-C bzw. Cocoa-Lösung parat hat, würd ich die gerne auch mal sehen. :)
  • Du kannst NSFileHandle das Handle deines Sockets zurückgeben und damit
    wunderbar weiterarbeiten. Schau Dir die Klasse dazu mal an.

    Quellcode

    1. s = socket(AF_INET, SOCK_STREAM, 0);
    2. handle = [[NSFileHandle alloc]initWithFileDescriptor:s];