cs_DJeS
Messages postés18Date d'inscriptionmardi 19 février 2002StatutMembreDernière intervention 3 juin 2004
-
29 mai 2004 à 12:31
cs_DJeS
Messages postés18Date d'inscriptionmardi 19 février 2002StatutMembreDernière intervention 3 juin 2004
-
1 juin 2004 à 12:55
avec winsock2 sous devc++, j'obtiens une erreur lors de l'envoi d'un msg avec ma socket en mode connecté stream.
en affichant le SOCKET_ERROR avec cout j'obtiens -1.
je suis pourtant connecté avec l'autre programme (j'execute mes prog client serveur sur la meme machine pr les tests...) puisque ma fct connect() ne renvoi pas d'erreur (SOCKET_ERROR)...
qqun a-t-il une idee des causes eventuelles...?
cette erreur peut -elle avoir qqchose a voir avec un erreur de ma fct recv() sur l'autre prog...?
merci d'avance
cs_Stormy
Messages postés255Date d'inscriptionsamedi 20 avril 2002StatutMembreDernière intervention16 janvier 2007 29 mai 2004 à 23:09
Je ne suis pas sûr que AnaCrox a raison car il m'arrive de passer une fonction WaitForSingleObject en faisant un test de validité sur le client. Or, si celui-ci n'est pas connecté ou si une erreur socket se présente la boucle agit sur ce nouvel évènement. Donc, (sauf erreur) un client mal configuré (recv notamment) peut engendrer un blem côté serveur:
_loop:
WaitForSingleObject(pi.hProcess, time);
if(send(client, test, strlen(test), 0) == SOCKET_ERROR)
{
printf("Disconnection by user - \n");
goto _escape; // On clôture l'application -
}
goto _loop; // Boucle infinie si rapport distant valide -
cs_DJeS
Messages postés18Date d'inscriptionmardi 19 février 2002StatutMembreDernière intervention 3 juin 2004 1 juin 2004 à 12:55
en fait mon probleme etait que je n'utilisait pas le bon socket...
dans le code que j'ai utilisé, il ya un socket sock utilisé pr la fct bind et listen...mais au moment de la fct accept j'ai csock(l'autre socket declarée)=accept(sock......)
pour ma fct send je devais utiliser csock...mais diable je ne comprend pas trop ce que viens faire la deuxieme socket ici et pourquoi je ne peux pas utliser la premiere pr communiquer avec mon client puisque c'est a elle (sock) qu'il se connecte...
DJeS