Fehler auf server - /client-c-Programm: "Verbinden: socket operation on non-socket"

Arbeite ich an einer socket-Programm und alles scheint in Ordnung, beim kompilieren. Zuerst habe ich kompilieren und führen Sie den server, und ich Sie dann kompilieren und ausführen des Clients. Der server läuft Prima, aber wenn der client startet, erhalte ich eine Fehlermeldung in der Connect() Funktion. Obwohl die Buchse scheint in Ordnung zu sein, der client keine Verbindung und der server sieht nicht die Verbindung versuchen.

Ist die Fehlermeldung:

Verbinden: Socket operation on non-socket

Hier ist der server-seitige code:

if ((ListeningSocket = socket(AF_INET, SOCK_STREAM,0 )) == -1){
        printf("socket failed!\n");
        exit(1);
    }

     else
          printf("Server: socket() is OK!\n");


     ServerAddr.sin_family = AF_INET;
     ServerAddr.sin_port = htons(5000);
     ServerAddr.sin_addr.s_addr = INADDR_ANY; //any one for any network can connect
     memset(&(ServerAddr.sin_zero), '\0', 8); //


     if (bind (ListeningSocket, (struct sockaddr *)&ServerAddr, sizeof(struct sockaddr))==-1)
     {
          printf("Server: bind() failed!\n");
          exit (1);
     }
     else
          printf("Server: bind() is OK!\n");

     if (listen(ListeningSocket,5)== -1){
          printf("Server: Error listening on socket\n");
          exit (1);
     }
     else{
     printf("Server: listen() is OK, I'm waiting for connections...\n");
     printf("Server: accept() is ready...\n");}



         sin_size = sizeof(struct sockaddr_in);
     NewConnection = accept(ListeningSocket, (struct sockaddr *)&ClientAddr,(socklen_t *)&sin_size);
         printf("Server: accept() is OK...\n");
         printf("Server: Client connected, ready for receiving and sending data...\n");

.........
....

 //}

Und hier ist der client-seitige code:

if(SendingSocket = socket(AF_INET, SOCK_STREAM, 0) == -1)
     {
          printf("Client: socket() failed!");
          exit (1);
     }
     else
          printf("Client: socket() is OK!\n");


     ClientAddr.sin_family = AF_INET;
     ClientAddr.sin_port = htons(5000);  
     ClientAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
     memset(&(ClientAddr.sin_zero), '\0', 8); 




if  ( connect (SendingSocket, (struct sockaddr *)&ClientAddr,
                    sizeof(struct sockaddr)) == -1) 
        {
            perror("Connect");
            exit(1);
        }


     else
     {
          printf("Client: connect() is OK, got connected...\n");
          printf("Client: Ready for sending and/or receiving data...\n");
     }

....

InformationsquelleAutor berkay | 2009-09-07

Schreibe einen Kommentar