invalid stream header

Status
Nicht offen für weitere Antworten.

CyD

Mitglied
Hi Leutz!

Der Sinn des Programmes ist schnell erklärt:
Der Server schickt dem Client eine Reihe von Objekten, die dieser Auswertet.

So weit so gut, aber ich bekomm immer diese Fehlermeldung:
Code:
java.io.StreamCorruptedException: invalid stream header: 64652E63
	at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
	at java.io.ObjectInputStream.<init>(Unknown Source)
	at Client.start(Client.java:63)

Hier der Code vom Client:
Code:
// Client

public Socket clientSocket = new Socket("localhost", 12345);
// ZEILE 62
public ObjectInputStream inputStream = new ObjectInputStream(this.clientSocket.getInputStream());
// ZEILE 64
public PrintWriter outputStream = new PrintWriter(this.clientSocket.getOutputStream(), true);

Object inputLine = null;
while ((inputLine = this.inputStream.readObject()) != null) {
	this.doSomething(inputLine); // Hier wird das Object weiterverarbeitet...
	this.outputStream.println("NEXT");
}

Gibt es vielleicht Alternativen für 'ObjectInputStream'?
Normalerweise benutze ich
Code:
String java.io.BufferedReader.readLine()
aber ein String, der ein "byte[]" enthält...

Hier der Code vom Server:
Macht zwar keine Probleme, aber vielleicht hilfts euch weiter.
Code:
// Server

public ServerSocket serverSocket = new ServerSocket(12345);	
public Socket clientSocket = this.serverSocket.accept();
	
public PrintWriter outputStream = new PrintWriter(this.clientSocket.getOutputStream(), true);
public BufferedReader inputStream = new BufferedReader( new InputStreamReader( this.clientSocket.getInputStream() ));


InputStream fileIn = new FileInputStream(src);

byte[] buf = new byte[1024];
int len;
while ((len = FileIn.read(buf)) > 0) {
	this.outputStream.println(new Protocol());
	if (!this.inputStream.readLine().equals("NEXT")) { // Wartet auf Antwort vom Client
		break;
	}
}
fileIn.close();

Code von dem zu übertragenen Objekt:
Code:
public class Protocol extends Object {
	
	private String information = "";
	private byte[] data;


	public FluxProtocol() {}


	public byte[] getData() {
		return data;
	}
	public String getInformation() {
		return information;
	}

	public void setData(byte[] data) {
		this.data = data;
	}
	public void setInformation(String information) {
		this.information = information;
	}
}

Liegts am Stream, am Socket oder eher an dem Object "Protocol"?
Hat irgendjemand eine Lösung für mein Problem??

THX im voraus!

CyD
 

CyD

Mitglied
Hab was vergessen:

Client.java
Code:
public void run() {
		
	boolean connected = false;
		
	try {
		do {
			try {
				this.clientSocket = new Socket(localhost, 12345);
				connected = true;
			} catch (Exception e) {
				System.out.println("Unbekannter Host: "+this.host);
			}

		} while (connected == false);

	        this.outputStream = new PrintWriter(this.clientSocket.getOutputStream(), true);
	        this.inputStream = new ObjectInputStream(this.clientSocket.getInputStream()); // ZEILE 63

	        this.receiveData();

	} catch (Exception e) {
		e.printStackTrace();
	}
}

Vielleicht liegts an "clientSocket", welches welches in einer do-while-schleife
initialisiert wird.
Wenn ja, gibts eine bessere Lösung?
 

Murray

Top Contributor
Ohne deinen Code jetzt vollständig verstanden zu haben: was per ObjectInputStream gelesen werden soll, muss auch mit einem ObjectOutputStream geschrieben worden sein.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A java.io.StreamCorruptedException: invalid stream header Netzwerkprogrammierung 2
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
X XML-RPC Problem: invalid Character Entitiy Netzwerkprogrammierung 12
A StringCorruptedException: invalid String header Netzwerkprogrammierung 2
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
E Socket Werte mit DataInput- und Output- Stream übergeben Netzwerkprogrammierung 1
T MP3 Dateien Stream Netzwerkprogrammierung 3
C Byte Stream dekodieren Netzwerkprogrammierung 7
G Video aus RTSP Stream speichern Netzwerkprogrammierung 8
B Socket BufferedReader.readLine() beenden ohne den Stream zu closen Netzwerkprogrammierung 7
A versch. Daten im Stream erkennen Netzwerkprogrammierung 2
E stream speichern Netzwerkprogrammierung 5
S Dateitransfer - kein end of stream Netzwerkprogrammierung 5
M RTP Stream überprüfen... Netzwerkprogrammierung 4
K ein Thread pro Stream Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
B Pdf Stream von Servlet mit itext Netzwerkprogrammierung 12
K End of stream, BufferedInputStream Netzwerkprogrammierung 4
A Icecast / SHOUTcast MP3 Stream / icy-metaint Netzwerkprogrammierung 3
Kr0e Simpler HTTP Stream server Test Netzwerkprogrammierung 3
H String Array durch einen Stream schicken. Netzwerkprogrammierung 4
lacyuu Warum empfängt mein Stream keinen Input? Netzwerkprogrammierung 4
lordcarlos Erstes TCP programm - output stream problem Netzwerkprogrammierung 2
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
N Socket Stream Schicken Netzwerkprogrammierung 13
N Socket Stream in String Netzwerkprogrammierung 4
M Bytes aus Stream lesen Netzwerkprogrammierung 3
J byte[] auf Stream schreiben Netzwerkprogrammierung 2
M ich habe ein stream problem Netzwerkprogrammierung 7
S Schnellster Stream Netzwerkprogrammierung 20
V Mehrere Streams durch einen Stream senden Netzwerkprogrammierung 14
W Was für ein Stream soll ich verwenden? Netzwerkprogrammierung 8
F Stream wird als Char übertragen. Char -> in String umwand Netzwerkprogrammierung 5
T Stream de-multiplexen Netzwerkprogrammierung 2
J gzip Stream weiterleiten Netzwerkprogrammierung 3
m@nu Ende von Stream bei HTTP-Request Netzwerkprogrammierung 3
C Problem mit Object-Stream Netzwerkprogrammierung 3
N TCP Stream auslesen Netzwerkprogrammierung 7
André B. Stream Bridge? Netzwerkprogrammierung 2
P Verschiedene Daten über einen Stream Netzwerkprogrammierung 4
T Musik-Stream: Server sendet die Datei zu schnell ? Netzwerkprogrammierung 3
N InternetRadio-Stream umleiten Netzwerkprogrammierung 2
G Writer oder Stream bei Socket? Netzwerkprogrammierung 2
G Datei über HTTP Stream senden Netzwerkprogrammierung 4
krgewb HTTP Authorization header Netzwerkprogrammierung 12
H HTTP Header Response kann nicht ausgelesen werden Netzwerkprogrammierung 4
F Timestamp aus IP-Header auslesen Netzwerkprogrammierung 2
F IP-Header manipulieren Netzwerkprogrammierung 2
T SMTP Header Größe Netzwerkprogrammierung 18
G Socket + HTTP Header Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben