Добавил:
kmosk
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
import java.io.*;
import java.net.*;
import java.util.*;
public class ServerThread extends Thread {
BufferedReader reader;
PrintWriter writer;
Socket socket;
Model model;
String user;
ServerThread(Socket socket, Model model) {
this.socket = socket;
this.model = model;
try {
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream(), true);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
try {
writer.println("Write your name:");
user = reader.readLine();
synchronized (model.serverThreads) {
Iterator<ServerThread> iter = model.serverThreads.iterator();
while (iter.hasNext()) {
iter.next().writer.println(user + " in chat!");
}
}
String message;
while (true) {
message = reader.readLine();
synchronized (model.serverThreads) {
Iterator<ServerThread> iter = model.serverThreads.iterator();
while (iter.hasNext()) {
iter.next().writer.println(user + ": " + message);
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
allClose();
synchronized (model.serverThreads){
Iterator<ServerThread> iter = model.serverThreads.iterator();
while (iter.hasNext()) {
iter.next().writer.println(user + " out chat!");
}
}
}
}
private void allClose() {
try {
reader.close();
writer.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Соседние файлы в папке lab6