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