RosettaCodeData/Task/Echo-server/Java/echo-server.java

43 lines
1.3 KiB
Java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
public class EchoServer {
public static void main(String[] args) throws IOException {
try (ServerSocket listener = new ServerSocket(12321)) {
while (true) {
Socket conn = listener.accept();
Thread clientThread = new Thread(() -> handleClient(conn));
clientThread.start();
}
}
}
private static void handleClient(Socket connArg) {
Charset utf8 = StandardCharsets.UTF_8;
try (Socket conn = connArg) {
BufferedReader in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), utf8));
PrintWriter out = new PrintWriter(
new OutputStreamWriter(conn.getOutputStream(), utf8),
true);
String line;
while ((line = in.readLine()) != null) {
out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}