it-swarm.com.de

Wann wird "Java.io.IOException: Verbindung von Peer zurückgesetzt" ausgelöst?

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)

Dieses Protokoll stammt von einem mit netty implementierten Spieleserver. Was kann diese Ausnahme auslösen? 

40
WorM

Java.io.IOException: Verbindung von Peer zurückgesetzt

Die andere Seite hat die Verbindung mitten in einer Transaktion abrupt abgebrochen. Das kann viele Ursachen haben, die von der Serverseite an nicht steuerbar sind. Z.B. Der Endbenutzer hat beschlossen, den Client herunterzufahren oder den Server während der Interaktion mit dem Server abrupt zu wechseln, oder das Client-Programm ist abgestürzt, die Internetverbindung des Endbenutzers ist unterbrochen oder der Computer des Endbenutzers ist abgestürzt usw.

52
BalusC

Um die Antwort von BalusC zu erweitern, führt jedes Szenario, in dem der Sender weiter schreibt, nachdem der Peer aufgehört zu lesen und seinen Socket geschlossen hat, zu dieser Ausnahme. Mit anderen Worten, ein Anwendungsprotokollfehler. Wenn Sie dem Peer beispielsweise etwas schreiben, das der Peer nicht versteht, und aus Protest seinen Socket schließt, und Sie dann weiter schreiben, wird der TCP - Stack des Peers eine RST ausgeben, was zu einem Ergebnis führt diese Ausnahme und Nachricht beim Absender.

11
user207421

Java.io.IOException in Netty bedeutet, dass Ihr Spieleserver versucht, Daten an einen Client zu senden, der Client hat jedoch die Verbindung zu Ihrem Server geschlossen.

Und diese Ausnahme ist nicht die einzige! Es gibt mehrere andere. Siehe BadClientSilencer in Xitrum. Ich musste das hinzufügen, um zu verhindern, dass diese Fehler meine Protokolldatei durcheinanderbringen.

3
Ngoc Dao

Java.io.IOException: Verbindung von Peer zurückgesetzt

In meinem Fall lag das Problem bei PUT-Anforderungen (GET und POST wurden erfolgreich übergeben).

Die Kommunikation erfolgte über VPN-Tunnel und SSH-Verbindung. Und es gab eine Firewall mit Standardeinschränkungen für PUT-Anforderungen ... PUT-Anforderungen wurden nicht durchgängig an den Server weitergeleitet ... 

Das Problem wurde behoben, nachdem der Firewall für meine IP-Adresse eine Ausnahme hinzugefügt wurde.

0
ognjenkl