Итак, я собираюсь создать IRC, например, Chat Proramm. Все содержимое GUI для клиентского приложения.Сохранить соединения сокета
Теперь моя проблема в том, что я хочу, чтобы несколько пользователей подключились к одному серверу. у этого сервера много чатов, и в каждой комнате есть список пользователей, которые сейчас находятся там.
Как создать Metode User.message (строковое сообщение). где я храню сокет? Могу ли я просто сохранить ClientConnection, который является runnable, в моем классе пользователя?
public class ClientConnection implements Runnable {
private final Socket CLIENT;
private String sendLine;
private String nextLine;
private BufferedReader in;
private PrintWriter out;
public ClientConnection(Socket s){
CLIENT = s;
try{
in = new BufferedReader(new InputStreamReader(CLIENT.getInputStream()));
out = new PrintWriter(CLIENT.getOutputStream(), false);
}catch(IOException IOEx){
IOEx.printStackTrace();
}
sendLine = "DATE";
}
public void run(){
try{
while(true){
if((nextLine = in.readLine()) != null){
System.out.println(nextLine);
}
if(sendLine != null){
out.println(sendLine);
sendLine = null;
}
}
}catch(SocketException SOEx){
System.out.println("Client Connection Closed");
return;
}catch(IOException IOEx){
IOEx.printStackTrace();
}
}
public void sendMessage(String m){
this.sendLine = m;
}
Ваш цикл чтения не имеет смысла. Если 'readLine()' возвращает значение null, вы должны прекратить чтение и, вероятно, закрыть сокет. – EJP