Je rencontre une erreur en dessous lorsque j'essaie de me connecter à un serveur TCP. Mes programmes essaye d'ouvrir environ 300-400 connexions en utilisant des threads différents et cela se passe pendant le 250ème thread. Chaque thread utilise sa propre connexion pour envoyer et recevoir des données.java.net.SocketException La connexion a expiré erreur
java.net.SocketException: Connection timed out:could be due to invalid address
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:372)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:233)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:220)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:385)
Voici le code que j'ai qu'un thread utilise pour obtenir la prise:
socket = new Socket(my_hostName, my_port);
est-il une limite par défaut du nombre de connexions qu'un serveur TCP peut avoir à un moment donné? Sinon, comment résoudre ce type de problèmes?
Quelle est la logique sur votre serveur qui gère les connexions? utilisez-vous un pool de threads ou juste générez des threads sauvagement? Si vous utilisez un pool de threads, vous pourriez avoir épuisé les threads si vous ne fermez pas les connexions/finissez la requête. –
Non Je n'utilise pas le pool de threads. Je commence un fil à la fois. Chaque thread ouvre une nouvelle connexion. – jgg