向NTP发送UDP数据包以获取数据包(在ruby中)
我需要做的是: 发送一个数据包到pool.ntp.org(我假设我自动得到一个数据包) 以下这些对我来说根本不起作用。我不知道我在做什么,所以现在如果我能找到地址并取回包裹,我会很满意。下面的代码只是挂起。任何和所有的帮助都将不胜感激向NTP发送UDP数据包以获取数据包(在ruby中),ruby,udp,ntp,Ruby,Udp,Ntp,我需要做的是: 发送一个数据包到pool.ntp.org(我假设我自动得到一个数据包) 以下这些对我来说根本不起作用。我不知道我在做什么,所以现在如果我能找到地址并取回包裹,我会很满意。下面的代码只是挂起。任何和所有的帮助都将不胜感激 require 'socket' sock = UDPSocket.new sock.connect("pool.ntp.org", 123) sock.recvfrom(10) 各国: 这意味着您可以使用send(mesg,flags)形式的send,仅此而已
require 'socket'
sock = UDPSocket.new
sock.connect("pool.ntp.org", 123)
sock.recvfrom(10)
各国:
这意味着您可以使用send(mesg,flags)
形式的send
,仅此而已。您需要向NTP服务器发送请求消息以获得回复
您可以在此处看到NTPv4协议规范:状态:
这意味着您可以使用send(mesg,flags)
形式的send
,仅此而已。您需要向NTP服务器发送请求消息以获得回复
您可以在这里看到NTPv4协议规范:这是否意味着我需要使用bind(主机、端口)?“sock.bind(“pool.ntp.org”,123)”给了我“无法分配请求的地址”错误。我需要将套接字绑定到该地址,以便从这里发送/接收?不,
bind()
用于将套接字绑定到本地端口/接口,以便您要发送的数据包来自特定接口和/或端口。因此,您可以像最初那样使用connect()
,但您需要先send()
一个请求,才能receive()
任何回复是否意味着我需要使用bind(主机、端口)?“sock.bind(“pool.ntp.org”,123)”给了我“无法分配请求的地址”错误。我需要将套接字绑定到该地址,以便从这里发送/接收?不,bind()
用于将套接字绑定到本地端口/接口,以便您要发送的数据包来自特定接口和/或端口。因此,您可以像最初那样使用connect()
,但您需要先send()
一个请求,才能receive()
任何回复
connect(host, port)
Connects udpsocket to host:port.
This makes possible to send without destination address.