天天看点

《Windows网络与通信程序设计(第3版)》——2.4 网络对时程序实例

本节书摘来自异步社区《windows网络与通信程序设计(第3版)》一书中的第2章,第2.4节,作者: 陈香凝 , 王烨阳 , 陈婷婷 , 张铮 更多章节内容可以访问云栖社区“异步社区”公众号查看。

网络对时也就是从internet上获得准确的时间,以此来校对本地计算机时钟。通过这样一个实例程序,大家可以初步了解协议和winsock函数的具体应用。

**

2.4.1 时间协议(time protocol)**

time protocol (rfc-868)是一种非常简单的应用层协议。它返回一个未格式化的32位二进制数字,这个数字描述了从1900年1月1日午夜到现在的秒数。服务器在端口37监听时间协议请求,以tcp/ip或者udp/ip格式返回响应。将服务器的返回值转化成本地时间是客户端程序的责任(进行转化时需要借用文件时间,详见后面的程序代码)。

下面是在传输层使用tcp的time protocol的工作过程(s代表服务器,c代表客户)。

s:监听端口37。

c:连接到端口37。

s:以32位二进制数发送时间。

c:接收时间。

c:关闭连接。

s:关闭连接。

如果服务器不能决定现在是什么时间,服务器会拒绝连接或不发送任何数据而直接关闭连接。

2.4.2 tcp/ip实现代码**

继续阅读