Comment éviter : Erreur 10055 No buffer space available
neo557
Messages postés34Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention30 août 2006
-
19 mars 2004 à 13:53
neo557
Messages postés34Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention30 août 2006
-
22 mars 2004 à 08:47
Bonjour à tous,
J'ai un problème à vous soumettre :
J'ai crée un logiciel composé de plusieurs sockets (Clients & Serveurs) et si je le laisse tourner un moment l'erreur 10055 va faire planter mon programme. J'ai une gestion d'erreurs elle n'aparaîtra pas à l'écran, je veux dire par là que ce n'est pas l'erreur en elle même qui fait planter le programme mais ce qu'elle occasione...
Dans mon logiciel je suis souvent obligé de faire des "Socket.Open" est-ce que faire des Socket.Open sans faire de Socket.Close avant peut causer cette erreur ?
J'ai peur d'avoir quelques problèmes d'allocation de mémoire avec mes sockets si qqun connaît le moyen de réparer cela merci de me répondre.
neo557
Messages postés34Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention30 août 20061 22 mars 2004 à 08:47
DISCUSSION
Receive the error "Socket RECV error 10055" on connection attempts.
RESOLUTION
This is a problem with the stack buffer size and some TCP/IP stacks. To resolve this problem simply add the following line to your HOSTEX.INI file in the [System.Settings] section :
Max Winsock Receive Size = 4096
ACTION
For further information please contact Hummingbird Technical Support
Cette solution ne va t'elle pas simplement ralentir le processus au lieu de le stopper ? Car il est vrai qu'allouer plus de mémoire au socket me permettra de tenir plus longtemps mais mon logiciel est un service qui va tourner 24h/24h...
J'ai chercher un peu et j'ai découvert que le problème venait du fait qu'on ne doit pas faire de Open sur un socket si l'on a pas reçu de réponse de l'Open précèdent. Or j'ai placé un flag que je met a true à chaque fois que je fais un Socket.Open et que je met à False à chaque Socket.Close, Socket.OnConnect et Socket.OnError... Problème chaque fois que je fais Socket.Open je vais dans Socket.OnError, donc je réinitialise mon flag et malheureusement au bout d'un moment ça va de nouveau replanter avec l'erreur 10055...