Moinsen!
Hab gerade mal ne halbe stunde verbracht um das Forum zu durchsuchen, aber leider nichts was mich betrifft gefunden...Na dann mal nen neuen Thread öffnen
Also mein Problem ist folgendes:
Soll einen ganz normalen Multichat erstellen der Nachrichten von Clients an alle verteilt. Aufgabe ist auch, dass sobald man in der GUI des Servers auf Stop drückt, alles fein säuberlich geschlossen wird.
In meiner GUI fängt das dann so an:
Im Serverchat steht dann folgendes:
Problem ist dabei, accept() ist ja blockierend und es passiert einfach nichts ;(
Habe es schon mit einem setSoTimeOut versucht (evtl aber falsch da es nicht geklappt hat :applaus: )
Hoffe es gibt diese Frage nicht schonmal und bedanke mich schonmal für Antworten.
LG
Hab gerade mal ne halbe stunde verbracht um das Forum zu durchsuchen, aber leider nichts was mich betrifft gefunden...Na dann mal nen neuen Thread öffnen
Also mein Problem ist folgendes:
Soll einen ganz normalen Multichat erstellen der Nachrichten von Clients an alle verteilt. Aufgabe ist auch, dass sobald man in der GUI des Servers auf Stop drückt, alles fein säuberlich geschlossen wird.
In meiner GUI fängt das dann so an:
Java:
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("start")) {
start = new Thread(new ServerChatStarter());
start.start();
} else if (command.equals("stop")) {
sc.stop();
System.out.println("acceptClient = false");
} else if (command.equals("send")) {
}
}
Java:
public void stop(){
acceptClient = false;
}
public void start(){
try {
chatTeilnehmer = new TeilnehmerListe();
messages.setText("Server wird gestarted.\nPort wird geoeffnet\n");
serverSocket = new ServerSocket(port);
while(acceptClient){
connect = new Thread(new ConnectionHandler(serverSocket.accept(), messages));
messages.append("Client accepted\n");
connect.start();
messages.append("Connectionhandler gestartet.\n");
}
System.out.println("Interrupt wird gesetzt.");
connect.interrupt();
} catch (IOException e) {
messages.append("Port konnte nicht geoeffnet werden\n");
}
}
Problem ist dabei, accept() ist ja blockierend und es passiert einfach nichts ;(
Habe es schon mit einem setSoTimeOut versucht (evtl aber falsch da es nicht geklappt hat :applaus: )
Hoffe es gibt diese Frage nicht schonmal und bedanke mich schonmal für Antworten.
LG