Java实现Socket之TimeClient

代码内容

  • time.nist.gov服务器的37号端口得到时间信息,并对时间进行解析后显示出来

代码实现

/* TimeClient.java */
import java.io.*;
import java.net.*;
import java.util.Date; public class TimeClient {
public final static long differenceBetweenEpochs = 2208988800L; public static void main(String[] args) {
try {
/* 设置服务器地址和端口号 */
InetAddress host = InetAddress.getByName("time.nist.gov");
int port = 37;
if (args.length > 0) {
host = InetAddress.getByName(args[0]);
}
/* 建立Socket连接 */
Socket s = new Socket(host, port);
/* 从Socket中读取数据 */
InputStream raw = s.getInputStream();
/* 时间转换 */
long secondsSince1900 = 0;
for (int i = 0; i < 4; i++) {
secondsSince1900 = (secondsSince1900 << 8) | raw.read();
} long secondsSince1970 = secondsSince1900 - differenceBetweenEpochs;
long msSince1970 = secondsSince1970 * 1000;
Date time = new Date(msSince1970);
System.out.println("It is " + time); } catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

运行截图

最新文章

  1. leetcode72. Edit Distance(编辑距离)
  2. hdu 2184 01背包变形
  3. Delphi中nil和null的区别
  4. Android多屏幕适配
  5. 调用ShellExecute所须要头文件
  6. sql中判断是否存在某个对象
  7. maven 创建后报错
  8. Pro Flight YOKE 设备键位映射踩过的坑
  9. 2.nginx_rewrite模块
  10. (95)Wangdao.com_第二十八天_进度事件
  11. Scala字节数组转换为数字
  12. centos7系统配置记录SFTP操作日志
  13. elasticsearch基本概念与查询语法
  14. Linux基础第六课——grep|awk|sort|uniq
  15. SCRUM 12.18
  16. windows下vc编译和debug nginx
  17. 第一个C#语言
  18. Build Laravel Blog PigJian by PHP7 and Nginx on Ubuntu
  19. 本地git关联远程github
  20. [T-ARA][Goodbye, OK]

热门文章

  1. C/C++中几种操作位的方法
  2. Hibernate 问题,在执行Query session.createQuery(hql) 报错误
  3. sql server 2008 R2 配置开启远程访问
  4. Linux下的”锁“事儿
  5. javascript之toString()和valueOf()函数
  6. EntityFramework追踪Sql语句
  7. jLink V8调试exynos 4412 u-boot的几点补充
  8. js设计模式(11)---命令模式
  9. Thinkphp 获取当前url
  10. php header 函数详解