begin process at 2012 02 10 19:26:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

close(socket) ne débloque pas un accept() ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

close(socket) ne débloque pas un accept() ?

jeudi 15 mai 2008 à 22:55:29 | close(socket) ne débloque pas un accept() ?

VHSeifer

Bonsoir

J'effectue conjointement de la programmation C/C++ sur Windows & sur Linux.

J'ai un petit soucis ou niveau de la terminaison de mon programme.

J'ai en gros deux threads : le principal crée un socket, bind celui-ci , le met en écoute et puis lance le deuxième thread dont le rôle est d'accepter les connexions des clients (boucle sur un accept() ). Jusque la rien de bien sorcier.
Le principal se met alors en attente d'une touche 'q'. Dès que la touche 'q' est tappée, le thread principal ferme le socket et attend la fin du deuxième thread avant de lui-même se terminer

Mais voila le hic : pour le même code lorsque je tappe 'q' sous Windows la fonction du thread se termine parfaitement car l'accept du deuxième thread n'est plus bloquant , une variable renseigne que c'est la fin du programme et le thread se termine normalement.

Sous Linux, aucune réaction de la part de l'accept(), il reste bloqué le bougre...
( Javais trouvé une solution 'sparadra' : cad faire en sorte que le thread principal fasse un connect() sur lui même mais ce n'est pas très beau quand meme... puis de tt façon le problème se pose aussi lors d'un recv bloquant.... :-s )

Est-ce normal cette réaction différente entre les deux systèmes d'exploitation ?

Merci bien

vendredi 16 mai 2008 à 17:55:54 | Re : close(socket) ne débloque pas un accept() ?

VHSeifer

Réponse acceptée !
J'annule ma (bête) question.

Je ne dirai plus jamais "to close a door" mais "to shutdown a door". En Unix, le close ne joue pas le même rôle que le shutdown ( desc , SHUT_RDRW ) ;

Après cela va tt de suite mieux...

Voila voila

Close() pour les fichiers et SHUTDOWN pour les sockets... ( excusez moi je passe un peu mes nerfs... cela fait 3 jours que je bloque sur ce truc ! )

Bonne journée




Cette discussion est classée dans : accept, socket, thread, principal, close


Répondre à ce message

Sujets en rapport avec ce message

Thread et socket udp [ par eurysthe ] Bonjour !!Voila j'ai un petit problème de thread qui me pourrit la vie.J'ai crée un thread qui doit écouter en boucle les informations qui transite su sockets: méthode accept() [ par julien20vt ] 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 serve Thread et socket [ par epoc ] Petite question.J'ai créé un petit serveur avec un socket 'bloquant'. Etant donné que je désire que mon aplication ne soit pas bloquée j'ai créé un th Comment Gerer des sockets non bloquant sous OpenGl [ par kawito ] Bonjour,je devellope un jeu (2d + scene 3d) en Opengl et C++, je desire utiliser seulement opengl et c++ (console app), pour des raisons de portabilit Socket [ par c2millet ] Bonjour à tous,je voudrais dans un premier tps si qqun a ou connais une doc sur les sockets. Ensuite, g un petit pb. g réalisé un serveur qui lit sur Probleme thread [ par PunkDude424 ] J'ai un probleme avec les threadJ,ai un server et jessai de créer un thread a chaque fois quun client se connecte, mais sa fonctionne pas.J,ai essayer Probleme avec un Thread créant une socket [ par lapinfroid ] Bonjour a tous ,c'est la premiere fois que je poste sur ce forumDonc si jamais je ne respecte pas toutes les regles n'hesitez pas a me le signalerVoic LAN Socket et multi thread [ par RV2931 ] Bonjour, Je suis en train d'essayer de faire un chat en réseau, chaque machine est client/serveur sur un port. Mais on m'a conseillé de faire un threa Problème de .h débutant [ par matt22 ] Bonjour à tous.j'ai quelques notions en c++ mais de gros problème à bien comprendre les .h et comment bien les utiliser.J'avais une application avec j Sdl_net + pthread probleme d'argument [ par Defaite ] Bonjour à tous.Voila mon problème, j'ai une thread ( en Pthread ) qui devrait s'occuper d'un socket.Seulement voila, impossible de dire à ma thread co


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,264 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales