Winsocket Server Problem



  • Hi ich bin gerade Dabei einen Server zu erstellen. Das Program wird auch fehlerfrei kompeliert aber beim binden des Sockets an einen Port trit der Fehlercode 10038 auf. Hier der Quelltext:

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <stdio.h>
    #include <conio.h>
    int start_winsock();
    int main()
    {
      long rc;
      long p;
    SOCKET a;//accept Socket
    SOCKET c;//conncet Socket
    SOCKADDR_IN addr;
    
    rc=start_winsock();
    if (rc==0)
    printf("Winsocket gestratet\n"); 
    
    a=(AF_INET,SOCK_STREAM,0);
    if(a!=INVALID_SOCKET)
    printf("Socket a erstellt\n"); 
    
    memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten 
    addr.sin_family=AF_INET;
    addr.sin_port=htons(2222);
    addr.sin_addr.s_addr=ADDR_ANY;
    
    p=bind(a,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
    if(p==SOCKET_ERROR)
    printf("ERROR");
    else
    printf("ERROR");
    rc=listen(a,10);
    if(rc==SOCKET_ERROR)
    printf("Fehler: listen, fehler code: %d\n",WSAGetLastError());
    
      system("PAUSE");	
      return 0;
    }
    
    int start_winsock()
    {
     WSADATA wsa;
    return(WSAStartup(MAKEWORD(2,0), &wsa));   
        }
    

    Was muss ich verändern, damit das Socket a an den Port gebunden wird.



  • if(p==SOCKET_ERROR)
    printf("ERROR");
    else
    printf("ERROR");
    

    sicher das das so sein soll?



  • http://support.ipswitch.com/kb/WSK-19980714-EM22.htm

    zeile 20: a=(AF_INET,SOCK_STREAM,0); --> a = socket(AF_INET,SOCK_STREAM,0);

    würd gerne wissen wieso das fehlerfrei kompilliert



  • Hab das Problem gelöst.
    Trotzdem danke


Anmelden zum Antworten