begin process at 2012 02 11 02:19:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Problème WinSock...


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

Problème WinSock...

vendredi 28 avril 2006 à 11:35:50 | Problème WinSock...

Vermifuge

Bonjour tout le monde, j'ai une réaction étrange de WinSock, et comme je trouve pas j'ai pensé que quelqu'un avait déjà eu ce problème ( c'est la première fois dans mon cas ). Voilà, alors j'ai un client et un serveur qui dialogues ensemblent. Le client a une interface graphique, et socket asynchrone avec WSAASyncSelect. Le serveur n'en a pas, donc j'utilise WSAEventSelect. Au niveau de la gestion asynchrone tout à l'air de bien se passer, jusqu'au moment où j'envoi des données depuis le client au serveur. Le serveur les reçois ( aucun soucis ici encore ), puis il répond. Et déjà là, c'est assé étrange. Le client reçois le message de données arrivées, il commence à recevoir ( le serveur fait plusieurs sends, ce sont des paquets clos à chaque fois, envoyé d'un bloc et d'une taille de 8 à 20 octets ) 1 ou 2 paquets ( ça dépend des fois ), des fois même il reçoit la moitié des paquets ( c'est une boucle qui tente de récupérer un maximum de paquets disponibles ). Je lis en 2 fois. D'abord 4 octets qui sont la taille totale du paquet, puis je reçois la suite de paquet ( maintenant que je connais la taille XD ). La boucle se termine, tous les paquets n'ont pas été récupérés. Et alors là, le client continu de recevoir plusieurs messages de données arrives ( lParam = FD_READ ), mais les recv ne lisent pas ( WSAWOULDBLOCK ), donc il n'y pas de données. Etrange.... Le nombre de messages total ne correspond pas au nombre de paquets envoyés. Au bout d'un moment, avec ses 18 ou 20 paquets reçus, il a fini de recevoir les paquets envoyés par le serveur. Et à ce moment là, il reçoit un message de socket fermée ainsi que le serveur de son côté. On dirait que la connection est fermée par le système, ou quelque chose dans le genre, mais je comprend pas pourquoi. Aucun appel à closesocket de chaque côté. La seule chose qui peut faire ça, c'est le multiples appels à recv qui ratent par manque de données ( WSAWOULDBLOCK ). Voilà, j'espère que je suis compréhensible, si vous avez une petite aide, elle sera la bienvenue, parce que là je sais pas comment corriger ce problème... @+ Vermi
vendredi 28 avril 2006 à 11:45:53 | Re : Problème WinSock...

Vermifuge

Réponse acceptée !
Arf, en fait le problème est résolu, c'était une erreur de ma part. J'ai ajouté une WSAResetEvent et ( normalement mon event est valable que pour FD_READ et FD_CLOSE alors j'avais fais "if (FD_READ) else ...", j'ai ajouté : "elseif (FD_READ)" et ça marche tout de suite beacoup mieux. XD @+ Vermi


Cette discussion est classée dans : problème, données, serveur, client, paquets


Répondre à ce message

Sujets en rapport avec ce message

Thread, Client/Serveur VC++.Net et avec WinForms ( pas d'MFC ) [ par lacousine ] Bonjour,j'ai développé un serveur qui accept plusieurs clients avec des sockets. Voici mes problèmes: lorsque je veux mettre fin à mon serveur et qu'i Communication Client/Serveur ! Ou es le problème ? [ par QuakeCoder ] Je recentre fréquemment un problème avec l’utilisation de socket et la communication entre Client/Server.   Prenant un exemple de ma dernière appl Problème de sockets... [ par nightlord666 ] Bonjour ! J'essaie en ce moment de programmer un serveur multithread qui servira(peut-être) à un projet de MMORPG. Le serveur fonctionne normalement, problème serveur client en C [ par lenneth666 ] voilà j'ai fais un serveur et un client. Alors pour envoyer un message du serveur vers le client il n'y a aucun problème par contre l'inverse ne march problème serveur TCP en C [ par lenneth666 ] Bonjour j'ai essayé de faire un client server TCP en C mais mon serveur bloque a l'instruction suivante : client_socket = accept( ma_socket,(struct savoir si le client est pret a recevoir les données [ par ebooserge ] salut a tous,j'ai une petite question sur les sockets orientées connection (TCP)lorsqu'un client se connecte a un serveur, est ce qu'il ya moyen pour client/serveur [ par tanoura ] salutje suis entrain de réaliser un programme de simulation du protocole RIP.il s'agit d'une application client serveur sur la même machine et meme co socket et décrémentation client serveur [ par ichigoZ710 ] Bonjour, j'aurais aimé savoir comment résoudre un problème sur lequel je planche depuis un petit moment déjà. En gros j'ai un serveur sur lequel des c application client/serveur pour msn local [ par amalsafa ] bonjour,j'ai besoin de l'aide à propos d'une application (client/serveur) pour un msn local [code=cpp][/code],y a t'il quelque source qui peuvent m'ai Problème avec type de données et opérateur >> lors de lecture de fichier [ par bny ] Bonjour, j'essaie de décoder un fichier de configuration(txt) j'ai certain problèmes avec les types de données et l'opérateur >> (flux de données).  J


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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,484 sec (4)

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