Loading src/main/java/ch15/SimpleChatServer.java +10 −13 Changes for src/main/java/ch15/SimpleChatServer.java: 10 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -3,26 +3,27 @@ package ch15; import java.io.*; import java.net.InetSocketAddress; import java.nio.channels.*; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.*; import java.util.concurrent.*; import static java.nio.charset.StandardCharsets.UTF_8; public class SimpleChatServer { private final ArrayList<PrintWriter> clientWriters = new ArrayList<>(); private final List<PrintWriter> clientWriters = new ArrayList<>(); public static void main(String[] args) { new SimpleChatServer().go(); } public void go() { ExecutorService threadPool = Executors.newFixedThreadPool(5); ExecutorService threadPool = Executors.newCachedThreadPool(); try { ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); serverSocketChannel.bind(new InetSocketAddress(5000)); while (serverSocketChannel.isOpen()) { SocketChannel clientSocket = serverSocketChannel.accept(); PrintWriter writer = new PrintWriter(Channels.newWriter(clientSocket, StandardCharsets.UTF_8)); PrintWriter writer = new PrintWriter(Channels.newWriter(clientSocket, UTF_8)); clientWriters.add(writer); threadPool.submit(new ClientHandler(clientSocket)); System.out.println("got a connection"); Loading @@ -32,14 +33,10 @@ public class SimpleChatServer { } } public void tellEveryone(String message) { for (Writer writer : clientWriters) { try { writer.append(message).write("\n"); private void tellEveryone(String message) { for (PrintWriter writer : clientWriters) { writer.println(message); writer.flush(); } catch (IOException ex) { ex.printStackTrace(); } } } Loading @@ -49,7 +46,7 @@ public class SimpleChatServer { public ClientHandler(SocketChannel clientSocket) { socket = clientSocket; reader = new BufferedReader(Channels.newReader(socket, StandardCharsets.UTF_8)); reader = new BufferedReader(Channels.newReader(socket, UTF_8)); } public void run() { Loading Loading
src/main/java/ch15/SimpleChatServer.java +10 −13 Changes for src/main/java/ch15/SimpleChatServer.java: 10 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -3,26 +3,27 @@ package ch15; import java.io.*; import java.net.InetSocketAddress; import java.nio.channels.*; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.*; import java.util.concurrent.*; import static java.nio.charset.StandardCharsets.UTF_8; public class SimpleChatServer { private final ArrayList<PrintWriter> clientWriters = new ArrayList<>(); private final List<PrintWriter> clientWriters = new ArrayList<>(); public static void main(String[] args) { new SimpleChatServer().go(); } public void go() { ExecutorService threadPool = Executors.newFixedThreadPool(5); ExecutorService threadPool = Executors.newCachedThreadPool(); try { ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); serverSocketChannel.bind(new InetSocketAddress(5000)); while (serverSocketChannel.isOpen()) { SocketChannel clientSocket = serverSocketChannel.accept(); PrintWriter writer = new PrintWriter(Channels.newWriter(clientSocket, StandardCharsets.UTF_8)); PrintWriter writer = new PrintWriter(Channels.newWriter(clientSocket, UTF_8)); clientWriters.add(writer); threadPool.submit(new ClientHandler(clientSocket)); System.out.println("got a connection"); Loading @@ -32,14 +33,10 @@ public class SimpleChatServer { } } public void tellEveryone(String message) { for (Writer writer : clientWriters) { try { writer.append(message).write("\n"); private void tellEveryone(String message) { for (PrintWriter writer : clientWriters) { writer.println(message); writer.flush(); } catch (IOException ex) { ex.printStackTrace(); } } } Loading @@ -49,7 +46,7 @@ public class SimpleChatServer { public ClientHandler(SocketChannel clientSocket) { socket = clientSocket; reader = new BufferedReader(Channels.newReader(socket, StandardCharsets.UTF_8)); reader = new BufferedReader(Channels.newReader(socket, UTF_8)); } public void run() { Loading