Hey,
Ich bin gerade eben auf ein, für mich, sehr seltsames Problem gestoßen. Ich versende mit meinem Server an den Client haufenweise Bytes. Der Client empfängt diese bis alle gesendet wurden.
Wenn ich den Client über "localhost" oder "127.0.0.1" verbinde läuft alles ohne Probleme ab.
Der Server verwendet den Port 8000, dieser ist freigeschalten und getestet.
Wenn ich über meine IP (die ich über Wie ist meine IP-Adresse? herausgefunden habe) auf den Server verbinde läuft die while Schlife für ~100 Runden und anschließend kommt es zu folgender Exception:
java.net.SocketException: Connection reset by peer: socket write error
Anscheinend schließt der Client den ObjectInputStream, dies passiert allerdings erst, nachdem der Server false gesendet hat. Durch herumprobieren habe ich herausgefunden, dass mein Server nie ein false schickt. Der Client wird also nicht durch meinen Programmtext geschlossen.
Hier noch der Quelltext:
Server:
Client:
in ist mein ObjectInputStream und s mein Socket.
Ich bedanke mich schonmal jetzt für jede Hilfe.
*Edit*
Über Hamachi gibt es keine Probleme. Aber ich habe erneut getestet ob der Port freigeschalten ist, ja ist er.
Ich bin gerade eben auf ein, für mich, sehr seltsames Problem gestoßen. Ich versende mit meinem Server an den Client haufenweise Bytes. Der Client empfängt diese bis alle gesendet wurden.
Wenn ich den Client über "localhost" oder "127.0.0.1" verbinde läuft alles ohne Probleme ab.
Der Server verwendet den Port 8000, dieser ist freigeschalten und getestet.
Wenn ich über meine IP (die ich über Wie ist meine IP-Adresse? herausgefunden habe) auf den Server verbinde läuft die while Schlife für ~100 Runden und anschließend kommt es zu folgender Exception:
java.net.SocketException: Connection reset by peer: socket write error
Anscheinend schließt der Client den ObjectInputStream, dies passiert allerdings erst, nachdem der Server false gesendet hat. Durch herumprobieren habe ich herausgefunden, dass mein Server nie ein false schickt. Der Client wird also nicht durch meinen Programmtext geschlossen.
Hier noch der Quelltext:
Server:
Java:
while(audioInputStream.read(buffer, 0, buffer.length) != -1){
out.writeBoolean(true); out.flush();
out.write(buffer); out.flush();
}
Client:
Java:
while(in.readBoolean()){
if(j < 200000){
in.read(buffer[j]);
}else{
in.read(tempBuffer);
}
j++;
}
...
in.close();
s.close();
in ist mein ObjectInputStream und s mein Socket.
Ich bedanke mich schonmal jetzt für jede Hilfe.
*Edit*
Über Hamachi gibt es keine Probleme. Aber ich habe erneut getestet ob der Port freigeschalten ist, ja ist er.
Zuletzt bearbeitet: