1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.newsclub.net.unix.demo.client;
19
20 import java.io.IOException;
21 import java.net.Socket;
22 import java.net.SocketAddress;
23
24 import org.newsclub.net.unix.AFSocketAddress;
25 import org.newsclub.net.unix.AFUNIXSocket;
26
27 import com.kohlschutter.annotations.compiletime.SuppressFBWarnings;
28
29
30
31
32
33
34 abstract class DemoClientBase {
35 private Socket socket;
36
37 public void close() throws IOException {
38 if (socket != null) {
39 socket.close();
40 }
41 }
42
43 @SuppressFBWarnings("UNENCRYPTED_SOCKET")
44 public void connect(SocketAddress endpoint) throws IOException {
45 System.out.println("Connect " + this + " to " + endpoint);
46 if (endpoint instanceof AFSocketAddress) {
47 socket = ((AFSocketAddress) endpoint).getAddressFamily().newSocket();
48 } else {
49 socket = new Socket();
50 }
51 socket.connect(endpoint);
52
53 handleSocket(socket);
54 }
55
56 @SuppressWarnings("hiding")
57 protected abstract void handleSocket(Socket socket) throws IOException;
58 }