Socket Fehlercode 10022 bei listen()



  • Hallo alle zusammen,

    ich fange grade an mit der Socked Programmierung und verlasse mich dabei auf das Tuturial von http://www.c-worker.ch/tuts/wstut_op.php. Doch beim Server erhalte ich immer bei accept den Fehler code 10022. Ich benutze Dev-C++ und habe die Bibiothek libws2_32.a
    Mein Quellcode:

    #include <windows.h>
    #include <winsock2.h>
    #include <stdio.h>
    
    //Prototypen
    
    int startWinsock(void);
    
    int main()
    
    {
    
      long rc;
    
      SOCKET acceptSocket;
      SOCKET connectedSocket;
      SOCKADDR_IN addr;
    
      // Winsock starten
    
      rc=startWinsock();
    
      if(rc!=0)
    
      {
    
        printf("Fehler: startWinsock, fehler code: %d\n",rc);
    
        return 1;
    
      }
    
      else
    
      {
    
        printf("Winsock gestartet!\n");
    
      }
    
      // Socket erstellen
    
      acceptSocket=socket(AF_INET,SOCK_STREAM,0);
    
      if(acceptSocket==INVALID_SOCKET)
    
      {
    
        printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
    
        return 1;
    
      }
    
      else
    
      {
    
        printf("Socket erstellt!\n");
    
      }
    
    memset(&addr,0,sizeof(SOCKADDR_IN));
    
    addr.sin_family=AF_INET;
    
    addr.sin_port=htons(1345);
    
    addr.sin_addr.s_addr=ADDR_ANY;
    
    rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
    
    if(rc==SOCKET_ERROR)
    
    {
    
      printf("Fehler: bind, fehler code: %d\n",WSAGetLastError());
    
      return 1;
    
    }
    
    else
    
    {
    
      printf("Socket an port 12345 gebunden\n");
    
    }
    
    connectedSocket=accept(acceptSocket,NULL,NULL);
    
    if(connectedSocket==INVALID_SOCKET)
    
    {
    
      printf("Fehler: accept, fehler code: %d\n",WSAGetLastError());
    
      return 1;
    
    }
    
    else
    
    {
    
      printf("Neue Verbindung wurde akzeptiert!\n");
    
    }
    
      return 0;
        system("PAUSE");
    
    }
    
    int startWinsock(void)
    
    {
    
      WSADATA wsa;
    
      return WSAStartup(MAKEWORD(2,0),&wsa);
    
    }
    

    Vielen Dank schonmal ein Vorraus

    Euer CPing



  • wiso hatt der was gegen Vor_raus also ich schreibs mal so 😃



  • Du bindest das Socket an den Port 1345, erwähnst später aber Port Nummer 12345.
    Tippfehler?

    PS: Weil "Voraus" mir einem 'r' geschrieben wird.



  • Uups ^^
    aber auch verbessert änderts nichts an der Fehlermeldung.
    Dass isses leider net, aber danke



  • CPing_socket schrieb:

    Server erhalte ich immer bei accept den Fehler code 10022.

    nur als generelle hilfe:

    D:\src>net helpmsg 10022
    Ein ungültiges Argument wurde angegeben.



  • Ok, es hatt sich geklärt, ich habe vergessen den Listen Modus einzubauen. *schäm*
    Aber trotzdem vielen Dank

    CPing


Anmelden zum Antworten