86 votes

Quand "java.io.IOException:Connection reset by peer" est-il lancé ?

ERROR GServerHandler  - java.io.IOException: Connection reset by peer
java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcher.read0(Native Method)
        at sun.nio.ch.SocketDispatcher.read(Unknown Source)
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
        at sun.nio.ch.IOUtil.read(Unknown Source)
        at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:323)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Ce journal provient d'un serveur de jeu implémenté à l'aide de netty. Qu'est-ce qui peut provoquer cette exception ?

96voto

BalusC Points 498232

java.io.IOException : réinitialisation de la connexion par le pair

L'autre partie a brutalement interrompu la connexion au milieu d'une transaction. Cela peut avoir de nombreuses causes qui ne sont pas contrôlables du côté serveur. Par exemple, l'utilisateur final a décidé d'arrêter le client ou de changer de serveur brusquement tout en interagissant avec votre serveur, ou le programme client s'est écrasé, ou la connexion Internet de l'utilisateur final est tombée en panne, ou la machine de l'utilisateur final s'est écrasée, etc, etc.

3voto

Ngoc Dao Points 699

java.io.IOException dans Netty signifie que votre serveur de jeu essaie d'envoyer des données à un client, mais ce client a fermé la connexion à votre serveur.

Et cette exception n'est pas la seule ! Il y en a plusieurs autres. Voir BadClientSilencer dans Xitrum. J'ai dû ajouter cela pour éviter que ces erreurs ne perturbent mon fichier journal.

1voto

ognjenkl Points 29

java.io.IOException : réinitialisation de la connexion par le pair

Dans mon cas, le problème venait des requêtes PUT (GET et POST passaient avec succès).

La communication est passée par un tunnel VPN et une connexion ssh. Et il y avait un pare-feu avec des restrictions par défaut sur les requêtes PUT... Les requêtes PUT n'ont pas été transmises au serveur...

Le problème a été résolu après l'ajout d'une exception au pare-feu pour mon adresse IP.

-2voto

Brad Parks Points 5513

Cela peut également signifier que le serveur est complètement inaccessible - j'obtenais cela en essayant d'atteindre un serveur qui était hors ligne

Mon client a été configuré pour se connecter à localhost:3000, mais aucun serveur ne s'exécutait sur ce port.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X