Witam, stworzyłem prostą wielowątkową aplikację typu chat (klient-serwer). Napotkałem na problem przy tworzeniu listy zalogowanych użytkowników, która będzie wyświetlana w GUI w JTabel (defaultlistmodel). Aktualny rezultat - po każdym nowym uruchomieniu Clienta, wszyscy użytkownicy 'dostają' ten sam nick. Kawałki kodu:
ClientHandler.java
public void run() {
while(true) {
try {
Socket socket = serverSocket.accept();
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("LocalChat: Witaj. Podaj swój nick:");
out.flush();
nick = in.readLine();
out.println("LocalChat: Twój nick to: " + nick);
Client.java
public Client(Socket socket, ClientHandler ClientHandler) {
this.socket = socket;
this.ClientHandler = ClientHandler;
try {
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
ip = socket.getInetAddress().getHostName();
output = new PrintWriter(socket.getOutputStream(),true);
output.println("Podaj nick");
output.flush();
nick = input.readLine();
output.println("LocalChat: Połączyłeś się z serverem: " +ClientHandler.serverSocket.getInetAddress().getLocalHost() +" na porcie " + ClientHandler.ip);
}
catch(Exception e) {
}
this.start();
}
Pozdrawiam