Sockets: méthode accept()

Signaler
Messages postés
43
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
10 novembre 2004
-
Messages postés
58
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
13 juillet 2007
-
Voila,

je viens de coder le serveur de ma socket et ce qui me parait etrange c'est que la méthode accept() n'est pas bloquante, je pensais que le serveur ne sortait de cette méthode que lorsqu'un client se connectait or chez moi, il retourne automatiquement INVALID_SOCKET.

De quoi ca pourrait venir ?

Merci.

5 réponses

Messages postés
126
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
15 février 2005

tu peux montrer comment tu déclares ta socket? sock(...)
Messages postés
43
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
10 novembre 2004

En fait c'est bon, je viens de trouver ce qui n'allait pas.

C'était dans le accept(sock,(SOCKADDR *)&sin, (int *)sizeof(sin));

C'etait le 3eme paramètre qui merdait, j'ai mis à la place &mataille ou mataille est déclaré comme suit : int mataille=sizeof(sin);

Et tout fonctionne, merci quand même.
Messages postés
126
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
15 février 2005

Je voulais procédé par étapes,

voir comment tu créè ta Socket,
puis voir comment tu fais ton accept.

Je savais ke l'erreur venait surment de l'un des 2.

Content pour toi que tu es trouvé !
Bonne continuation.
Messages postés
43
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
10 novembre 2004

Merci en tous cas !
Messages postés
58
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
13 juillet 2007

Moi aussi j'ai un problème,



this->m_sckService =
this->m_sckEcoute->Accept();
// accept crée un nouveau socket pour la conexion

le problème est que j'aimerais bien lorsque je ferme mon programme que la méthode accept ne reste plus bloquante.... en effet, j'utilise des threads et mon programme libère pas toute les ressources utilisées en partie grace à Accept. Vous avez une idée comment résoudre ce problème... a part le shutdown, car ca règle pas mon problème ...Quand je fais CTRL+ALT+DEL et que je regarde les processus en cours... le mien est toujours actif même si mon programme est fermé.

Mieux vaut être blonde et poser des questions que de rester ignorante !!!!