精易论坛

标题: 取TIME_protocol日期时间信息 [打印本页]

作者: 真冬    时间: 2024-8-19 16:17
标题: 取TIME_protocol日期时间信息
本帖最后由 真冬 于 2024-8-19 16:42 编辑
  
信息框 (取TIME_protocol日期时间信息 (“time.nist.gov”), 0, , )
子程序名返回值类型公开备 注
取TIME_protocol日期时间信息日期时间型 时间协议(英语:TIME protocol)是一个在RFC868内定义的网络传输协议。它用作提供机器可读的日期时间信息。
参数名类 型参考可空数组备 注
参数_地址文本型
参数_时区字节型留空则默认8
变量名类 型静态数组备 注
局_返回消息字节集 
局_i1整数型 
局_返回时间日期时间型 
局_句柄整数型 
局_返回消息 = 取空白字节集 (444)
WSAStartup_取Internet时间 (1, 局_返回消息)  ' 初始化版本1并写入套接字信息
局_句柄 = socket_取Internet时间 (2, 1, 6)  ' 2,IPV4协议。1,字节流类型,6,TCP协议,
connect_取Internet时间 (局_句柄, { 2, 0, 0, 37 }指针到字节集 (指针到整数 (指针到整数 (gethostbyname_取Internet时间 (参数_地址) + 12)), 4), 16)  ' 37端口和IP地址,16大小结构
局_返回消息 = 取空白字节集 (9)
recv_取Internet时间 (局_句柄, 局_返回消息, 4, 0)  ' 取服务器返回消息
closesocket_取Internet时间 (局_句柄)  ' 关闭句柄
判断 (局_返回消息 [1] = 0)
局_返回时间 = 到时间 (0)  ' 服务器返回消息为空
计次循环首 (2, 局_i1)  ' 将获取到的消息倒序前4字节
局_返回消息 [9] = 局_返回消息 [局_i1]
局_返回消息 [局_i1] = 局_返回消息 [4 - (局_i1 - 1)]
局_返回消息 [4 - (局_i1 - 1)] = 局_返回消息 [9]
计次循环尾 ()
局_i1 = 取字节集sj (局_返回消息, #长整数型, ) - 36524 × 24 × 60 × 60  ' 减掉100年的时间
局_i1 = 局_i1 + 选择 (是否为空 (参数_时区), 8, 参数_时区) × 3600
局_返回时间 = 增减时间 (到时间 (“2000年1月1日”), #秒, 局_i1)
WSACleanup_取Internet时间 ()
返回 (局_返回时间)
DLL命令名返回值类型公开备 注
WSACleanup_取Internet时间整数型 卸载Winsocket服务
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
WSACleanup
参数名类 型传址数组备 注
DLL命令名返回值类型公开备 注
WSAStartup_取Internet时间整数型 
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
WSAStartup
参数名类 型传址数组备 注
wVersionRequested整数型
lpWSAData字节集
DLL命令名返回值类型公开备 注
socket_取Internet时间整数型 Socket又称套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求。
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
socket
参数名类 型传址数组备 注
af整数型
type整数型SOCK_STREAM or SOCK_DGRAM
protocol整数型
DLL命令名返回值类型公开备 注
connect_取Internet时间整数型 连接到服务器(TCP)
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
connect
参数名类 型传址数组备 注
网络通讯标识符整数型s
名称结构字节集套接字地址addr
名称结构长度整数型namelen(16)
DLL命令名返回值类型公开备 注
inet_addr_取Internet时间整数型 
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
inet_addr
参数名类 型传址数组备 注
IP文本型
DLL命令名返回值类型公开备 注
recv_取Internet时间整数型 
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
recv
参数名类 型传址数组备 注
socket整数型
buf字节集__out_data_source(NETWORK) char *buf,
len整数型
flag整数型
DLL命令名返回值类型公开备 注
closesocket_取Internet时间整数型 
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
closesocket
参数名类 型传址数组备 注
s整数型0
DLL命令名返回值类型公开备 注
gethostbyname_取Internet时间整数型 成功返回内存指针
DLL库文件名:
ws2_32.dll
在DLL库中对应命令名:
gethostbyname
参数名类 型传址数组备 注
name文本型机器名称




之前有人发13和123端口的取网络时间,我这个是37端口的。
调试输出 (增减时间 (到时间 (“1970年1月1日”), #秒, 时间_取NTP服务器时间戳 ())) ‘精易模块里也有通过123端口获取时间的






作者: fastdao    时间: 2024-8-19 16:26

作者: 清晨的鸟    时间: 2024-8-19 19:22

作者: 我很低调    时间: 2024-8-19 19:31
Internet时间服务器端口并不是13端口。‌  Internet时间服务器通常使用TCP端口37和UDP端口37,这些端口被DATE、RDATE、SDATE和其他使用“时间”协议的程序使用。为了成功访问NIST时间服务器,防火墙必须允许通过将使用的远程端口和协议组合进行出站连接。系统上的端口号可能会因一个请求而异,并且如果消息寻址到NIST系统上的特定端口之一,则可能必须允许来自系统上任何端口号的消息通过防火墙,如果消息从这些特定时间服务端口之一返回,则允许发送到系统上任何端口的消息通过防火墙‌1。  此外,不同的端口号用于不同的网络服务,例如:  端口13用于daytime服务,给请求主机发送日期和时间‌2。 端口37专门用于时间协议‌1。 因此,将Internet时间服务器端口与13端口关联是不准确的,正确的端口号是37,用于TCP和UDP通信,以提供时间同步服务‌1。
作者: ysjger1987    时间: 2024-8-19 19:50
路过看看
作者: 艾玛克138    时间: 2024-8-19 20:48
感谢老大,太好了
作者: ttggnn    时间: 2024-8-19 21:03

感谢分享
作者: bianyuan456    时间: 2024-8-20 01:21
已经顶贴,感谢您对论坛的支持!
作者: renhe2018    时间: 2024-8-20 04:16
这也是不错 的思路
作者: 查过    时间: 2024-8-20 07:45
感谢发布原创作品,精易因你更精彩!6666666666666
作者: 豆豆灰常开心    时间: 2024-8-20 07:50
感谢楼主分享!
作者: year1970    时间: 2024-8-20 08:04
感谢分享
作者: 一指温柔    时间: 2024-8-20 08:58
感谢分享
作者: renhe2018    时间: 2024-8-21 07:07
再来研究研究。
作者: 查过    时间: 2024-8-21 07:57
已经顶贴,感谢您对论坛的支持!
作者: 豆豆灰常开心    时间: 2024-8-21 08:01
全都是大佬~
作者: please    时间: 2024-8-21 09:36
感谢分享,支持开源!!!
作者: 396384183    时间: 2024-8-21 10:07
感谢分享 赞一个 !
作者: 查过    时间: 2024-8-22 07:08
全都是大佬~
作者: 豆豆灰常开心    时间: 2024-8-22 07:13
已经顶贴,感谢您对论坛的支持!
作者: please    时间: 2024-8-22 09:38
感谢分享,支持开源!!!
作者: 光影魔术    时间: 2024-8-22 13:27
感谢分享源码
作者: 胖子葛格    时间: 2024-8-24 13:51
感谢大神分享~!
作者: wh1234567    时间: 2024-8-25 00:17
感谢楼主分享
作者: 熊不熊    时间: 2024-12-4 17:19
感谢分享,很给力!~
作者: 2638623693    时间: 2025-1-24 00:36
赞赞赞赞赞赞赞




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4