本博文源於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()