WSAAsyncSelect

Signaler
Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013
-
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
-
Bonsoir,

Je code un serveur, voici la partir du code relative aux sockets:
---------------------------------------------------------------
if(WSAStartup(MAKEWORD(2,0),&WSAData)!=NO_ERROR)
    {
        ...
    }
    ws_sin.sin_family=AF_INET;
    ws_sin.sin_port=htons(896);
    ws_sin.sin_addr.s_addr=INADDR_ANY;
    sock_main=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    if(sock_main==INVALID_SOCKET)
    {
        ..
    }
    if(bind(sock_main,(SOCKADDR *)&ws_sin,sizeof(ws_sin))==SOCKET_ERROR)
    {
        ..
    }
    if(WSAAsyncSelect(sock_main,hwnd,WM_SOCKET,FD_ACCEPT|FD_READ|FD_CLOSE)!=0)
    {
        int i=0;
        i=WSAGetLastError();       <<<<<<<<< i = 10022
        ...
    }
    if(listen(sock_main,0) == SOCKET_ERROR)
    {
        ...
    }
---------------------------------------------------------------------------------
La fonction WSAAsyncSelect echou, i vaut 10022 ce qui equivaut a l'erreur:
"WSAEINVAL"   Description pri de MSDN:
* Invalid argument. : Some invalid argument was supplied (for example, specifying an invalid level
to the setsockopt function). In some instances, it also refers to the
current state of the socket—for instance, calling accept on a socket that is not listening.
Quelqun peut m'aider ?

Merci d'avance

l3KTr0 Was HeRe

1 réponse

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

Verifie que le hwnd est bien valide, on sait jamais. Sinon tu peux
aussi essayer de mettre le WSAAsyncSelect() juste apres le socket().