Go语言圣经 练习8.1
练习 8.1: 修改clock2来支持传入参数作为端口号,然后写一个clockwall的程序,这个程序可以同时与多个clock服务器通信,从多个服务器中读取时间,并且在一个表格中一次显示所有服务器传回的结果,类似于你在某些办公室里看到的时钟墙。如果你有地理学上分布式的服务器可以用的话,让这些服务器跑在不同的机器上面;或者在同一台机器上跑多个不同的实例,这些实例监听不同的端口,假装自己在不同的时区。像下面这样:
$ TZ=US/Eastern ./clock2 -port 8010 &
$ TZ=Asia/Tokyo ./clock2 -port 8020 &
$ TZ=Europe/London ./clock2 -port 8030 &
$ clockwall NewYork=localhost:8010 Tokyo=localhost:8020 London=localhost:8030
服务端clock
首先修改clock2的代码以支持命令行参数,支持命令行参数主要有两种方式:
- 直接使用os.Args[1:]读取命令行参数,自行对读取到的字段进行解析。
- 使用之前 7.4节介绍的flag.Value接口来读取命令行参数
本文使用第二种方法实现,这样既可以熟悉之前章节的知识,也较为方便。 然后对应不同port 做不同的处理(handleConn中执行swtich分支处理)
package main
import (
"flag"
"io"
"log"
"