Winsock 2 listen

Signaler
Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Bonjour, ceci est mon bou de code, je veu mette le socket en mode listen, mais de ke je le fait, ca plante...ce bout de code est sous win32 et la fenetre plante.

En global:
WSADATA WSAData;
SOCKET sock;
SOCKADDR_IN sin;

ensuite:
WSAStartup(MAKEWORD(2,0), &WSAData);
 sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_family=AF_INET;
 sin.sin_port=htons(4148);
 sock = socket(AF_INET,SOCK_STREAM,0);
 bind(sock,(SOCKADDR *)&sin,sizeof(sin));

et finalement:
listen(sock, 0);
int val = 0;
while(1)
{
val = accept(sock, (SOCKADDR *)&sin, sizeof(sin));
if(val != INVALID_SOCKET)
{
                    // Fonctions a` e'xe'cuter sur le socket.
}
}

l3KTr0 Was HeRe
A voir également:

2 réponses

Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007

Dis moi : comment ta socket peut etre créée sur sin et accepter sur sin. Il s'accepte lui-même ???????????

Essaye de rajouter

SOCKADDR_IN sin2;
et remplace
val = accept(sock, (SOCKADDR *)&sin, sizeof(sin));
par
val = accept(sock, (SOCKADDR *)&sin2, sizeof(sin2));

 Laetitia
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Salut lektrosonic !

Egalement à la place de :
int val = 0;
mets :
SOCKET val;

Ca ne change pas grand chose mais c'est plus propre.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"