1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.newsclub.net.unix.demo.server;
19
20 import java.io.IOException;
21 import java.io.InputStream;
22 import java.io.OutputStream;
23 import java.net.Socket;
24 import java.net.SocketAddress;
25
26
27
28
29
30
31 public final class EchoServer extends DemoServerBase {
32 public EchoServer(SocketAddress listenAddress) {
33 super(listenAddress);
34 }
35
36 @Override
37 protected void doServeSocket(Socket socket) throws IOException {
38 int bufferSize = socket.getReceiveBufferSize();
39 byte[] buffer = new byte[bufferSize];
40
41 try (InputStream is = socket.getInputStream();
42 OutputStream os = socket.getOutputStream()) {
43 int read;
44 while ((read = is.read(buffer)) != -1) {
45 os.write(buffer, 0, read);
46 }
47 }
48 }
49 }