WSAAsyncSelect

lektrosonic Messages postés 145 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 21 février 2013 - 18 nov. 2007 à 20:42
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 19 nov. 2007 à 08:19
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

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 4
19 nov. 2007 à 08:19
Salut,

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