服务端:
-
ss = socket()
创建一个服务器套接字 -
ss.bind()
绑定服务器套接字
inf_loop: # 服务器无限循环
cs = ss.recvfrom() 或者ss.sendto() # 与客户端对话
ss.close() # 关闭服务器套接字
客户端:
-
cs = socket()
创建一个客户端套接字
comm_loop: # 客户端通讯循环
cs.recvfrom() 或者cs.sendto() # 与客户端对话
cs.close() # 关闭服务器套接字
服务端代码实现:
from socket import *
ip_port = ('127.0.0.1', 8080)
buffer_size = 1024
udp_server = socket(AF_INET, SOCK_DGRAM) # 数据报
udp_server.bind(ip_port)
while True:
data = udp_server.recvfrom(buffer_size)
print(data)
客户端代码实现:
from socket import *
ip_port = ('127.0.0.1', 8080)
udp_client = socket(AF_INET, SOCK_DGRAM) # 数据报
while True:
udp_client.sendto('hello udp'.encode('utf-8'), ip_port)
基于UDP实现NTP服务
服务端:
from socket import *
import time
ip_port=('127.0.0.1',8080)
buffer_size=1024
udp_server=socket(AF_INET,SOCK_DGRAM) #数据报
udp_server.bind(ip_port)
while True:
data,addr=udp_server.recvfrom(buffer_size)
print(data)
if not data:
fmt='%Y-%m-%d %X'
else:
fmt=data.decode('utf-8')
back_time=time.strftime(fmt)
udp_server.sendto(back_time.encode('utf-8'),addr)
客户端:
from socket import *
ip_port = ('127.0.0.1', 8080)
buf_size=1024
udp_client = socket(AF_INET, SOCK_DGRAM) # 数据报
while True:
msg = input("请输入发送内容")
udp_client.sendto(msg.encode('utf-8'), ip_port)
data, addr = udp_client.recvfrom(buf_size)
print("ntp服务器的标准时间是", data.decode("utf-8"))
网友评论