Guten Tag an alle hier
Ich habe einen ObjectOut- und InputWriter, den ich so erstellt habe
Das senden der Daten geschieht über eine Methode sendMessage()
Dort sollen die 4 verschiedenen Objekte gesendet werden und zwar in der Reihenfolge, wie sie in der Liste sind. Die 1. Frage ist: Darf ich das überhaupt machen? verschiedene schreiboperationen auf einen Stream setzen?
Auf der Gegenseite wird der Inputstream ebenfalls wie oben erstellt.
Wenn ich jetzt ein paar Daten drüber gesendet habe (jede Klasse mehrmals) dann sendet empfängt die Gegenstelle irgendwann Unsinn.
Also Beispiel wollte ich nur ein Short = 6 drüber senden und laut Debugger sendet er das auch ab. Auf der Empfängerseite kommt dann aber mit
der Wert 1536 raus. Das jedes Mal. Wie gesagt, am Anfang funktioniert das Senden prima.
Könnte mir jemand etwas Hilfestellung geben?
Danke schon mal
Eule
Ich habe einen ObjectOut- und InputWriter, den ich so erstellt habe
Java:
outWrtr = new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream()));
new ObjectInputStream(socket.getInputStream());
Das senden der Daten geschieht über eine Methode sendMessage()
Java:
public synchronized void sendMessage(LinkedList<Object> send)
throws NullPointerException, IOException {
//look for every object the appropriate class
for(int i=0; i < send.size() ; i++) {
//if the to send object is a Short
if(send.get(i) instanceof Short) {
Short x = (Short)send.get(i);
outWrtr.writeShort(x);
// outWrtr.flush();
}
//if the to send Object is a String
else if(send.get(i) instanceof String) {
outWrtr.writeUTF((String)send.get(i));
// outWrtr.flush();
}
//if the to send Object is an Integer
else if(send.get(i) instanceof Integer) {
outWrtr.writeInt((Integer)send.get(i));
// outWrtr.flush();
}
//if the to send Object is a Boolean
else if(send.get(i) instanceof Boolean) {
outWrtr.writeBoolean((Boolean)send.get(i));
// outWrtr.flush();
}
}
outWrtr.flush();
outWrtr.reset();
}
Dort sollen die 4 verschiedenen Objekte gesendet werden und zwar in der Reihenfolge, wie sie in der Liste sind. Die 1. Frage ist: Darf ich das überhaupt machen? verschiedene schreiboperationen auf einen Stream setzen?
Auf der Gegenseite wird der Inputstream ebenfalls wie oben erstellt.
Wenn ich jetzt ein paar Daten drüber gesendet habe (jede Klasse mehrmals) dann sendet empfängt die Gegenstelle irgendwann Unsinn.
Also Beispiel wollte ich nur ein Short = 6 drüber senden und laut Debugger sendet er das auch ab. Auf der Empfängerseite kommt dann aber mit
Java:
short code = inRdr.readShort();
Könnte mir jemand etwas Hilfestellung geben?
Danke schon mal
Eule
Zuletzt bearbeitet: