1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.example.worldclock;
17
18 import io.netty.bootstrap.Bootstrap;
19 import io.netty.channel.Channel;
20 import io.netty.channel.EventLoopGroup;
21 import io.netty.channel.MultiThreadIoEventLoopGroup;
22 import io.netty.channel.nio.NioIoHandler;
23 import io.netty.channel.socket.nio.NioSocketChannel;
24 import io.netty.example.util.ServerUtil;
25 import io.netty.handler.ssl.SslContext;
26
27 import java.util.Arrays;
28 import java.util.List;
29
30
31
32
33
34 public final class WorldClockClient {
35
36 static final String HOST = System.getProperty("host", "127.0.0.1");
37 static final int PORT = Integer.parseInt(System.getProperty("port", "8463"));
38 static final List<String> CITIES = Arrays.asList(System.getProperty(
39 "cities", "Asia/Seoul,Europe/Berlin,America/Los_Angeles").split(","));
40
41 public static void main(String[] args) throws Exception {
42
43 final SslContext sslCtx = ServerUtil.buildSslContext();
44
45 EventLoopGroup group = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory());
46 try {
47 Bootstrap b = new Bootstrap();
48 b.group(group)
49 .channel(NioSocketChannel.class)
50 .handler(new WorldClockClientInitializer(sslCtx));
51
52
53 Channel ch = b.connect(HOST, PORT).sync().channel();
54
55
56 WorldClockClientHandler handler = ch.pipeline().get(WorldClockClientHandler.class);
57
58
59 List<String> response = handler.getLocalTimes(CITIES);
60
61
62 ch.close();
63
64
65 for (int i = 0; i < CITIES.size(); i ++) {
66 System.out.format("%28s: %s%n", CITIES.get(i), response.get(i));
67 }
68 } finally {
69 group.shutdownGracefully();
70 }
71 }
72 }