begin process at 2012 05 30 15:59:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

!recv ou SOCKET_ERROR


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

!recv ou SOCKET_ERROR

samedi 6 novembre 2004 à 11:14:40 | !recv ou SOCKET_ERROR

AlexMAN

Membre Club
Bonjour,

J'ai lu sur msdn et un peu partt ke lon pouvait reconnaitre la deconnexion d'un client si recv renvoyait 0, mais lorsk je fais par exemple ceci :

while (recv(...)) {}

Malgré le fait que le client se soit deconnecté, ca boucle tjrs et ca me renvoie -1 (== SOCKET_ERROR).
Je ferme la connexion du client en faisant appel a closesocket(), ya til une fonction ke j'ai oublié ? J'ai essayé avec shutdown et closesocket(), mais j'ai tjrs le mm pb.
Si kelkun a une solution, merci bcp ;)

Merci d'avance

++
samedi 6 novembre 2004 à 12:44:30 | Re : !recv ou SOCKET_ERROR

Nebula

Membre Club
Réponse acceptée !
"If no error occurs, recv returns the number of bytes received. If the connection has been gracefully closed, the return value is zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError."

Donc, appelle shutdown avec SD_BOTH avant ton closesocket. Et teste donc recv > 0, quitte à utiliser une variable temporaire (genre while((i=recv) > 0), çà t'évitera de boucler bêtement si le client plante) pour tester à la sortie de la boucle ce qui s'est passé.
samedi 6 novembre 2004 à 18:46:08 | Re : !recv ou SOCKET_ERROR

ToToL

Membre Club
le plus simple pour savoir quand un client se déconnect est d'attendre le FD_CLOSE
samedi 6 novembre 2004 à 19:54:08 | Re : !recv ou SOCKET_ERROR

aardman

Membre Club
Salut,
Oui, mais pour le recevoir ce FD_CLOSE il faut utiliser un modele un peu plus évolué..
dimanche 7 novembre 2004 à 18:57:26 | Re : !recv ou SOCKET_ERROR

AlexMAN

Membre Club
Merci Nebula, mais alors pkoi recv ne me renvoie pas 0 ? Paske le client a planté ? J'ai po bien compris la..

Merci encore a tous

++
dimanche 7 novembre 2004 à 19:34:35 | Re : !recv ou SOCKET_ERROR

Nebula

Membre Club
Ben,
0 = connexion fermée "amicalement" (avec appel à shutdown avant)
-1 = connexion plantée ou fermée à l'arrache, et WSAGetLastError() te permet d'en savoir plus sur ce qui s'est passé
mardi 5 septembre 2006 à 14:51:27 | Re : !recv ou SOCKET_ERROR

Ange44

J'envoie un message un bon moment après la fin du post mais bon j'essaye quand même ...

l'équivalent du WSAGetLastError() sous Linux c'est quoi ? Parce que je voudrais moi aussi connaitre la déconnexion brutale, mais sous linux ...


Cette discussion est classée dans : ke, client, socket, error, recv


Répondre à ce message

Sujets en rapport avec ce message

Evènement sur un socket client [ par darsh99 ] J'aimerais savoir si la méthode utilisée par BlackGoddess pour son serveur (http://www.cppfrance.com/article.aspx?ID=1287) est récupérable pour gérer 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 Requetes serveur cs 1.6 [ par Mini92 ] En fait, j'essaye d'envoyer des requêtes sur mon serveur cs mais je n'obtiens aucun retour.Voilà le code si quelqu'un peu m'aider svp#include #include Compilation impossible sous Visual C++ 2008 Express [ par AMokers ] Bonjours :) Je ne parviens pas à compiler une source. La source en question proviens du site cppfrance dont voici l'url :http://www.cppfrance.com/ Problème client/serveur -> flux du recv avec un air d'extraterrestre [ par thispawn ] Bonjour j'ai codé un système client serveur. Dès que le client arrive a se connecter il envoi avec 3 send ceci : format B ou D | taille du buffer | bu Client -> Serveur [ par norton ] Bonjour à tous. N'étant pas encore assez expérimenté dans le domaine des sockets je vous demande conseil.Je code sous Borland Builder C++ 6 avec les S delay client sur server socket linux [ par 0x0syscall ] Bonjour,Voilà, je voudrais savoir comment je dois m'y prendre pour que sur mon serveur si le client ne repond pas au bout de X secondes, le serveur co Threads & Sockets appliqués au jeu [ par LA_Tupac ] Salut à tous les progueurs !!J'ouvre ce post pour receuillir des infos sur les techniques de prog reseau sous les jeux videos.Je bosse actuellement su programmation socket [ par you147 ] salut,j'ai un ptite application de programmation socket de chate client/ serveur sous lunix en C mais il y a un erreur je comprid pas cette erreur aid Socket en c avec winsock2.h [ par juju11288 ] Bonjour a tous je voudrai pour le moment arriver a faire un client serveur en c qui parle entre eux avec le protocole TCP/IP. Je fait les deux  progra


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,406 sec (4)

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