Hilfe bei Chat Programm mit Socket, Lock und Condition

4by4

Mitglied
Hey,
Ich brauche hilfe beim schließen des Sockets nachdem ein user den chat verlässt.

Java:
public void run() {
			closeConnection = false;
			while (!closeConnection) {
				try {
					Msg msg = (Msg) client.getIn().readObject(); // Hier, dies soll Zeile 56 sein
					if (msg.getTag().equals(Msg.CONNECT_TAG)) {
						client.getOut()
								.writeObject(
										new Msg(
												Msg.TEXT_TAG,
												"Server",
												"Welcome "
														+ msg.getName()
														+ ", press the quit button to leave chatroom!"));
					} else if (msg.getTag().equals(Msg.TEXT_TAG)) {
						for (int i = 0; i < clients.size(); i++) {
							if (!clients.get(i).equals(client)) {
								clients.get(i).addMsg(msg);
							}
						}
					} else if (msg.getTag().equals(Msg.UPDATE_TAG)) {
						client.getOut().writeObject(client.pollMsg());
					} else if (msg.getTag().equals(Msg.CLOSE_CONNECTION)) {
						for (int i = 0; i < clients.size(); i++) {
							if (!clients.get(i).equals(client)) {
								clients.get(i).addMsg(
										new Msg(Msg.TEXT_TAG, "Server", msg
												.getName()
												+ ", has left the chatroom!"));
							}
						}
						clients.remove(client);
						client.closeSocket();
						closeConnection = true;
					}
				} catch (ClassNotFoundException | IOException e) {
					e.printStackTrace();
				}
			}
		}

bekomme aber folgenden fehler:

Java:
java.io.EOFException
	at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at chat.server.ChatServer$ServerHandler.run(ChatServer.java:56)
 
Zuletzt bearbeitet:
Hat sich erledigt... hab bei der schleife fürn update die bedingung falsch gesetzt... nun hat der client obwohl er geschlossen wurde noch immer versucht was zu senden
 

Neue Beiträge

Zurück