Ubuntu利用TCP协议来获取服务器时间
来源:互联网 发布:公司宣传栏软件 编辑:程序博客网 时间:2024/05/10 15:19
Linux利用TCP协议来获取服务器时间
这里使用Unix网络编程里面的一个小程序,该客户端建立一个到服务器的TCP连接,然后读取由服务器以直观可读格式简单地送回的当前时间和日期.
#include"unp.h"int main(int argc, char **argv){intsockfd, n;charrecvline[MAXLINE + 1];struct sockaddr_inservaddr;if (argc != 2)err_quit("usage: a.out <IPaddress>");if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)err_sys("socket error");bzero(&servaddr, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(13);/* daytime server */if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)err_quit("inet_pton error for %s", argv[1]);if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)err_sys("connect error");while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {recvline[n] = 0;/* null terminate */if (fputs(recvline, stdout) == EOF)err_sys("fputs error");}if (n < 0)err_sys("read error");exit(0);}
然后我们运行这个程序若干次,每次以不同的IP地址作为命令行参数.
首先我们测试本机的时间,你必须要先打开Linux下的daytime服务,方法如下
sudo apt-get install xinetdsudo vi /etc/xinetd.d/daytime找到这一行,然后把yes改成no (disable = yes) -> (disable = no)sudo /etc/init.d/xinetd restart
测试本机
root@ubuntu:/home/jiang/UNP_STUDY/unpv13e/intro# ./daytimetcpcli 127.0.0.1
24 OCT 2014 00:39:36 CST
那么要想测试互联网上服务器的daytime,首先得找到支持用TCP协议返回时间的服务器.测试了一些可能的主机,发现有一些可以返回,一些超时或者拒绝访问。
可能的主机列表如下,就是windows下右下角时间同步的那个列表。
这里使用dig指令来解析域名
dig time.windows.com +short
time.microsoft.akadns.net.
64.4.10.33
运行程序尝试获取时间
./daytimetcpcli 64.4.10.33
第一次
connect error: Connection timed out
第二次
connect error: Connection refused
换个服务器
dig time.nist.gov./daytimetcpcli 128.138.141.172
结果
56953 14-10-23 16:46:39 11 0 0 0.0 UTC(NIST) *
可以看直观的看出来,当地的时间为下午4点钟.
0 0
- Ubuntu利用TCP协议来获取服务器时间
- UNIX网络编程卷1 时间获取程序服务器 TCP 协议相关性
- 利用ajax获取服务器时间,并显示
- 利用js获取当前本地时间和服务器时间
- 利用ubuntu命令来进行查看训练时间
- 利用ajax不需刷新页面来获取当前时间
- ubuntu-利用pdnsd-TCP方式获取IP-拒绝DNS污染
- unix网络基础-TCP时间获取服务器程序
- 1.通过tcp从daytime服务器获取时间
- 基于TCP协议服务器
- TCP的时间获取客户程序和时间获取服务器程序
- 利用js获取服务器时间的两个简单方法
- 利用js获取服务器时间的两个简单方法
- Python--TCP时间服务器
- JAVA网络编程实现基于TCP协议的时间服务(向服务器查询当前时间)
- 时间服务器通讯协议
- 利用TCP协议进行ping
- 【Linux网络编程实例】实例二:利用TCP协议进行客户端与服务器通信
- Xcode6.1 发布 出现 The ipa is invalid. It does not include a Payload Directory 错误
- 架构师修炼课程:透过问题看本质
- Excel学习笔记一Excel图表和数据分析
- bash: ./adb: No such file or directory
- 设计模式C++实现(5)——原型模式、模板方法模式
- Ubuntu利用TCP协议来获取服务器时间
- Ubuntu adb device
- SQL之 exists 、in
- 架构师:站在技术的山顶向前眺望
- JAVA学习第四十五课 — 其他对象API(一)System、Runtime、Math类
- JAVA学习第四十六课 — 其他对象API(二)Date类 & Calendar类(重点掌握)
- 装饰设计模式 练习笔记
- 【cocos2d-js官方文档】三、Bake功能使用说明
- postgres 调试篇 --"unix_socket_directories"