文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Python网络编程基础笔记-时间服务器

Python网络编程基础笔记-时间服务器

时间:2007-10-27  来源:jcodeer

1.使用UDP实现时间服务器

# -*- coding: cp936 -*-
"""
UDP实现的时间服务器
1.接受来自客户端的任何请求。
2.获得本服务器的时间,并将这个时间以字符串的方式返回给客户端
"""
import socket,sys,struct,time

host = ""
port = 51423

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((host,port))
while 1:
    message,address = s.recvfrom(8192)
    secs = int(time.time())
    secs += 2208988800
    reply = struct.pack("!I",secs)
    s.sendto(reply,address)

2.使用UDP实现来获取时间服务器返回的时间

# -*- coding: cp936 -*-
"""
UDP使用方法:
1.创建socket
2.发送或接收数据,它不需要connect
"""
import socket,sys,struct,time

host = "localhost"
port = 51423

host = socket.gethostbyname(host)
# 1.使用SOCK_DGRAM,而不是SOCK_STREAM
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 3.使用sendto发送数据
s.sendto("",(host,port))
# 2.不使用connect方法

# 4.使用recvfrom接收数据
buf = s.recvfrom(2048)[0]
if len(buf) != 4:
    print "wrong-sized reply %d:%s" % (len(buf),buf)
    sys.exit(1)

secs = struct.unpack("!I",buf)[0]
secs -= 2208988800
print time.ctime(int(secs))

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载