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:
Hier der Code vom Client:
Gibt es vielleicht Alternativen für 'ObjectInputStream'?
Normalerweise benutze ich
aber ein String, der ein "byte[]" enthält...
Hier der Code vom Server:
Macht zwar keine Probleme, aber vielleicht hilfts euch weiter.
Code von dem zu übertragenen Objekt:
Liegts am Stream, am Socket oder eher an dem Object "Protocol"?
Hat irgendjemand eine Lösung für mein Problem??
THX im voraus!
CyD
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()
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