socktprx.h , woher?

Dieses Thema im Forum "C/C++" wurde erstellt von Ticha, 01.12.2006.

  1. Ticha

    Ticha Linux Missionar

    Dabei seit:
    21.07.2006
    Beiträge:
    814
    Zustimmungen:
    0
    ich arbeite mich grad durch eines der Galileo Books, C von A-Z, das ich sehr empfehlen kann.

    Jedoch komm ich an einem Beispeil nicht weiter


    Code:
    /* multi_server.c */
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include "socketprx.h"
    #define BUF 1024
    
    int main (void) {
      socket_t sock1, sock2, sock3;
      int i, ready, sock_max, max=-1;
      int client_sock[FD_SETSIZE];
      fd_set gesamt_sock, lese_sock;
      char *buffer = (char*) malloc (BUF);
    
      sock_max = sock1 = create_socket(AF_INET, SOCK_STREAM, 0);
      atexit(cleanup);
      bind_socket( &sock1, INADDR_ANY, 15000 );
      listen_socket (&sock1);
    
      for( i=0; i<FD_SETSIZE; i++)
         client_sock[i] = -1;
      FD_ZERO(&gesamt_sock);
      FD_SET(sock1, &gesamt_sock);
    
      for (;;) {
        /* Immer Aktualisieren */
        lese_sock = gesamt_sock;
        /* Hier wird auf die Ankunft von Daten oder
         * neuer Verbindungen von Clients gewartet */
        ready = select( sock_max+1, &lese_sock, NULL, NULL, NULL );
        /* Eine neue Client-Verbindung ... ? */
        if( FD_ISSET(sock1, &lese_sock)) {
           accept_socket( &sock1, &sock2 );
           /* Freien Platz für (Socket)Deskriptor
            * in client_sock suchen und vergeben */
           for( i=0; i< FD_SETSIZE; i++)
              if(client_sock[i] < 0) {
                 client_sock[i] = sock2;
                 break;
              }
           /* Mehr als FD_SETSIZE Clients sind nicht möglich */
           if( i == FD_SETSIZE )
              error_exit("Server überlastet - zuviele Clients");
           /* Den neuen (Socket)Deskriptor zur
            * (Gesamt)Menge hinzufügen */
           FD_SET(sock2, &gesamt_sock);
           /* select() benötigt die höchste
            * (Socket)Deskriptor-Nummer */
           if( sock2 > sock_max )
              sock_max = sock2;
           /* höchster Index für client_sock
            * für die anschließende Schleife benötigt */
           if( i > max )
              max = i;
           /* ... weitere (Lese)Deskriptoren bereit ? */
           if( --ready <= 0 )
              continue; //Nein ...
        } //if(FD_ISSET ...
    
        /* Ab hier werden alle Verbindungen von Clients auf
         * die Ankunft von neuen Daten überprüft */
        for(i=0; i<=max; i++) {
           if((sock3 = client_sock[i]) < 0)
              continue;
           /* (Socket)Deskriptor gesetzt ... */
           if(FD_ISSET(sock3, &lese_sock)){
              /* ... dann die Daten lesen */
              TCP_recv (&sock3, buffer, BUF-1);
              printf ("Nachricht empfangen: %s\n", buffer);
              /* Wenn quit erhalten wurde ... */
              if (strcmp (buffer, "quit\n") == 0) {
                 /* ... hat sich der Client beendet */
                 close_socket (&sock3);        //Socket schließen
                 FD_CLR(sock3, &gesamt_sock);  //aus Menge löschen
                 client_sock[i] = -1;          //auf -1 setzen
                 printf("Ein Client hat sich beendet\n");
              }
              /* Noch lesbare Deskriptoren vorhanden ... ? */
              if( --ready <= 0 )
                 break; //Nein ...
           }
        }
      } // for(;;)
      return EXIT_SUCCESS;
    }
    im buch wird geschreiben, man soll sie socketprx.h benutzen, nur sagt mein compiler mir, dass er die nicht kennt. google spuckt mir auch nur die Links zu galilieo books aus... weiss jmd woher ich die .h datei bekomme und installiere?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hwj

    hwj Doppel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    131
    Zustimmungen:
    0
    Ort:
    Bei Buxtehude
  4. Ticha

    Ticha Linux Missionar

    Dabei seit:
    21.07.2006
    Beiträge:
    814
    Zustimmungen:
    0
    Oh... wer lesen kann ist klar im Vorteil, oder wie war das?:think:

    schuldig im Sinne der anklage :brav:


    danke nochma :)
     
Thema:

socktprx.h , woher?

Die Seite wird geladen...

socktprx.h , woher? - Ähnliche Themen

  1. Red Hat Enterprise Virtualization Manager - Woher?

    Red Hat Enterprise Virtualization Manager - Woher?: Hallo Leute, ich führe momentan eine Projektreihe zum Thema Desktopvirtualisierung durch und versuche im Moment einen Red Hat Enterprise Server...
  2. Suse 9.0 - Woher?

    Suse 9.0 - Woher?: Hi, ich habe hier einen älteren Laptop, auf dem mit empfohlen wurde Open Suse 9.0 zu installieren, weil das als einziges wohl einigermaßen...
  3. Frage an Archer(die Echten): Woher Ziehmesser bekommen?

    Frage an Archer(die Echten): Woher Ziehmesser bekommen?: Soo das hat ausnahmsweise mal nix mit PCs zu tun, jedoch bin ich zu faul mir etxra ein Forum das sich mit dem Thema beschäftigt zu suchen.... Und...
  4. Karamba / Superkaramba ...woher?

    Karamba / Superkaramba ...woher?: Hallo, ich würde gerne Karamba oder SuperKaramba bei mir installieren. Leider bekomme ich beim kompilieren von Super Karamba die Meldung, dass...
  5. Neuen Kernel! woher?

    Neuen Kernel! woher?: Hallo es wäre nett, wenn mich mal jemand schnell aufklären kann. Ich möchte auf meinem Notebook einen neuen Kernel installieren 2.6.18 oder...