A
Alex
Gast
Hi Leute,
ich bastele zur Zeit an einem Messenger fürs LAN. Allerdings bekomme ich immer wenn der Server die Userliste an
den Client sendet eine StreamCorruptedException: Invalid Stream Header beim Client.
Aber vielleicht hat ja jemand von euch sich mit diesem Fehler schon mal rumgeschlagen und kann mir helfen.
Das ist die Funktion die für das Senden der Userliste auf der Serverseite zuständig ist.
Und das hier ist ein Teil des Client Thread der die Nachrichten annimmt.
Ich habe hier nicht den kompletten Code von diesem Thread aufgeführt weil das vielleicht
ein wenig lang ist und nicht unbedingt zur Lösung des Problems beigetragen hätte.
Deshalb kann man hier auch das catch(IOException) nicht sehen.
Gruß
Alex
ich bastele zur Zeit an einem Messenger fürs LAN. Allerdings bekomme ich immer wenn der Server die Userliste an
den Client sendet eine StreamCorruptedException: Invalid Stream Header beim Client.
Aber vielleicht hat ja jemand von euch sich mit diesem Fehler schon mal rumgeschlagen und kann mir helfen.
Das ist die Funktion die für das Senden der Userliste auf der Serverseite zuständig ist.
Code:
public void sendUserList() {
messageVektor = new Vector();
synchronized(messageVektor) {
messageVektor.add("[/User_List]");
for(Enumeration e = m_vectorClients.elements(); e.hasMoreElements();) {
ClientSocket clientSocket = (ClientSocket)e.nextElement();
try {
messageVektor.add(clientSocket.getNickname());
}
catch(Exception ioex) {
log("Server(sendUserList|Exception): " + String.valueOf(ioex));
}
}
messageVektor.add("[/End_User_List]");
}
for(Enumeration e = m_vectorClients.elements(); e.hasMoreElements();) {
ClientSocket clientSocket = (ClientSocket)e.nextElement();
try {
o_stream = clientSocket.getSocket().getOutputStream();
os = new ObjectOutputStream(o_stream);
os.writeObject(messageVektor);
os.flush();
log("UserList send");
}
catch(IOException ioex1) {
log("Server(sendUserList|IOException): " + String.valueOf(ioex1));
}
}
}
Und das hier ist ein Teil des Client Thread der die Nachrichten annimmt.
Code:
...
public void run() {
m_client.log("ClientThread run");
String temp = new String();
temp=null;
messageVektor = new Vector();
String strBuffer = new String("0");
while(strBuffer!=null) {
try {
i_stream = m_socket.getInputStream();
ios = new ObjectInputStream(i_stream);
try {
try {
m_client.log("Versuche messageVektor einzulesen");
try {
messageVektor = (Vector)ios.readObject(); //bei dieser
//Programmzeile springt das Programm in catch(IOException)
m_client.log("messageVektor wurde eingelesen"); }
catch(OptionalDataException opex) {
m_client.log("Optional Data found");
}
...
Ich habe hier nicht den kompletten Code von diesem Thread aufgeführt weil das vielleicht
ein wenig lang ist und nicht unbedingt zur Lösung des Problems beigetragen hätte.
Deshalb kann man hier auch das catch(IOException) nicht sehen.
Gruß
Alex