import socket
import struct
import sys
import time
NTP_SERVER = '0.uk.pool.ntp.org'
TIME1970 = 2208988800L
def sntp_client():
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
data = str.encode('\xlb' + 47 * '\0')
client.sendto(data, (NTP_SERVER, 123))
data, addr = client.recvfrom(1024)
if data:
print('Response received from:', addr)
t = struct.unpack('!12I', data)[10]
t -= TIME1970
print('\tTime: %s' % time.ctime(t))
if __name__ == '__main__':
sntp_client()
予想される出力:
Response received from: ('80.82.244.120', 123)
Time: Tue Sep 13 14:49:38 2016
問題は、そのプログラムは、任意の出力を与えていないです。それはで密着しているようです:
data, addr = client.recvfrom(1024)
私は誰かがこれで私を助けることを願っています。
あなたのプログラムは、サーバからの応答を待っているが、それは永遠に待っているように、サーバーが応答していません。適切なデータを送信していますか?またはサーバーが稼動していますか?あなたは何を達成しようとしていますか? – Juggernaut
@AminEtesamianは実際に、私は「** Pythonのネットワークプログラミングクックブック**」という本を参照しています。上のプログラムは本の例の1つです。 – Harshil
サーバがダウンしているかではない、もう働く可能性があります。テストと作業の目的で独自のサーバーを実行できます。 – Juggernaut