Winsock et erreur 10053 [Résolu]

Messages postés
29
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
21 octobre 2008
- - Dernière réponse : Polack77
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
- 12 mai 2007 à 15:44
Bonjour,

Je développe une application client qui utilise Winsock pour dialoguer avec un serveur que je ne gère pas.

Aléatoirement, mon winsock provoque l'erreur "10053: la connexion est interrompue suite à un delai d'attente dépassé ou toute autre anomalie" lorsqu'il reçoit des données. Apperemment ce n'est même pas la méthode GetData mais l'évènement Data_Arrival en lui même.

Le soucis c'est que les données arrivent que quelques secondes après mon envoir donc je ne pense pas que se soit un problème de délai dépassé.... et je ne sais pas ce qui peut provoquer cette erreur....

Merci de votre aide.
[file:///D:/PharmaML/PharmaML%20-%201.1.17%20En%20cours/pharmaml.exe ]
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
3
Merci
Ta connections est peut être déjà fermer.
A tu un évènement
Close sur ton objet Winsock.
    Si oui ferme-tu ton Winsock lorsque cet événement
survient (avec "ObjWinsock.close")?
    Si non il faut le faire.






Amicalement



Pensez "Réponce acceptée"

Merci Polack77 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Polack77
Messages postés
80
Date d'inscription
mardi 27 décembre 2005
Dernière intervention
11 mai 2007
0
Merci
regarde tes ports car ton client et ton serveur doivent travailler sur les meme ports ......!
Commenter la réponse de gothikth
Messages postés
29
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
21 octobre 2008
0
Merci
Mon client et mon serveur ont déjà échangé des données avant donc la connexion s'est bien faîtes, mais lorsque je renvoie des données une nouvelle fois, toujours sur la même connexion, je pense que mon envoi se passe bien mais tout de suite derrière j'ai mon erreur 10053.
Donc je ne pense pas que ça viennent des ports puisqu'ils dialoguent ensemble 5 secondes avant mon deuxième envoi....

Merci quand même.
Commenter la réponse de Soulant
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
0
Merci
Juste pour vérif je récapitule ton problème

1) Tu te connect à ton serveur (avec "ObjWinsock.Connect Serveur, Port")
2) Tu envoie des données une premierre fois (avec "ObjWinsock.SendData Données")
3) Tu recois des données (évenement "DataArrival", récup avec "ObjWinsock.GetData ObjReceptDonnées")
4) Tu envoie de nouveaux des donnée (toujours avec "ObjWinsock.SendData Données")
5) Tu recois des données et là erreur 10053
C'est ça?

Amicalement
Pensez "Réponce acceptée"
Commenter la réponse de Polack77
Messages postés
29
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
21 octobre 2008
0
Merci
Voilà bien résumé...
Sauf que je ne sais pas exactement à quel moment entre le 4 et le 5 il se met en erreur....
Il passe bien sur le sendData, donc pour moi la chaine est partie, mais coté serveur apparemment ils ne recoivent rien....
Mais pour moi ma chaine est partie, mon programme se met donc en attente pour la réception, et là le socket se met en erreur, il rentre pas du tout dans l'évènement dataArrival mais je me retrouve dans l'évènement socketError.....
Commenter la réponse de Soulant
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
0
Merci
Ou alors (ce n'est pas très propre mais bon...)

Quand tu veux envoyer des données tu te connecte, puis fais ton envoie de
données

A la réception de données tu récupéré tes données puis tu ferme ta connections.


A l'envoie suivant de données tu te reconnecte et ainsi de suite.





Par contre pense à mettre un flag qui signal que tu es en attente d’une
réception de données pour ne pas faire un deuxieme envoie alors que tu n’as toujours
pas la réponse du premier.








Amicalement



Pensez "Réponce acceptée"
Commenter la réponse de Polack77
Messages postés
29
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
21 octobre 2008
0
Merci
Je vais déjà essayer avec l'évènement close...
Je te tiens au courant.

Merci.
Commenter la réponse de Soulant
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
0
Merci
Heee, je suis en WeekEnd à 16H00 donc si aucune de mes deux solutions ne marche fais vite ou il faudras attendre lundi.
A+
Amicalement
Pensez "Réponce acceptée"
Commenter la réponse de Polack77
Messages postés
29
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
21 octobre 2008
0
Merci
Ce coup ci tu as le droit à un GRAND merci!!!

Ca fonctionne.
Autre souci annexe, de temps en temps je suis obligé de faire deux envois.... je m'explique.
J'envoi une première fois ma chaine, et comme je n'ai aucune réponse, au bout d'un certain temps je renvoie la même chaine et ce coup ci j'ai une réponse du serveur....

Donc je ne vois pas pourquoi la première fois cela ne fonctionne pas puisque je suis connecté au serveur, en théorie... De plus entre la première et la deuxième fois je ne ferme pas ma connexion donc il n'en ouvre pas une deuxième....

Merci encore.
Commenter la réponse de Soulant
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
0
Merci
Je passe juste vite fais pour voir si tu à résolut ton problème. Ravie d'avoir pue t'aider .
Par contre pour ton autre problème je ne sais pas
A mon havie il faux voir ça coté serveur (si tu peut avoir accès au code source).
Bon courage pour la suite et peut être à +.
Amicalement
Pensez "Réponce acceptée"
Commenter la réponse de Polack77

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.