Je suis en train de créer une appli qui communique avec plusieurs serveurs pour récupérer leur état. Toutes les communications se font en même temps au moyen de threads. En gros, j'ai une vingtaine de threads qui communiquent toutes les 10 secondes avec des serveurs. Il y a autant de threads que de serveurs. Le code de chaque thread est le suivant :
L'application est temps réel, elle tourne en permanence. Le problème c'est qu'au bout d'une journée, elle plante et lorsque je fais un "netstat", la liste des sockets est énorme, ce qui fait que Windows est saturé niveau connexions (même Internet ne marche plus...). J'ai donc un problème pour fermer mes sockets. Les serveurs sont écrits en Pascal (c'est pas moi qui les ai faits). J'ai essayé plusieurs trucs :
- mettre shutdown(skt_client, 2); avant le closesocket.
- mettre shutdown(skt_client, 2); sans le closesocket.
- utiliser l'option SO_LINGER (je ne suis pas sûr de l'avoir bien fait).
Je suis débutant en sockets alors j'avoue que je suis vraiment perdu dans cette histoire. Quelqu'un peut m'aider ?