本博文源于socket编程,主要针对python的两个文件建立udp通信。
实验效果
客户端输入:我是客户端哦!
服务器收到并作为回声
服务器端:
收到来自客户端的消息,并给予同样的回应!
实验原理
用socket建立基于UDP协议的服务器流程步骤
s = socket() # 建立套接字
s.bind() # 绑定本机地址
s.recvfrom()或s.sendto() # 接受数据或发送数据
s.close() # 关闭套接字
用socket建立基于UDP协议的服务器流程
s = socket() # 建立套接字
s.recvfrom()或s.sendto() # 接收数据或发送数据
s.close() # 关闭套接字
根据这些步骤编出如下代码:
实验代码
服务器端等待连接
server.py
# udp 服务器端
import socket
HOST = ''
PORT = 10888
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind((HOST, PORT))
data = True
while data:
data,address = s.recvfrom(2048)
if data == b'bye':
break
print('Received String:',data.decode('utf-8'))
s.sendto(data,address)
s.close()
客户端主动连接
client.py
import socket
HOST = 'localhost'
PORT = 10888
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
data = '你好!'
while data:
s.sendto(data.encode('utf-8'),(HOST,PORT))
if data == 'bye':
break
data, addr = s.recvfrom(512)
print('Recv from server:\n',data.decode('utf-8'))
data = input('Please input a info:\n')
s.close()