天天看點

Python UDP用戶端/服務端

UDPClient.py

# -*- coding: utf-8 -*-

from socket import *
serverName = '127.0.0.1' # 伺服器位址,本例中使用一台遠端主機
serverPort = 12000 # 伺服器指定的端口
clientSocket = socket(AF_INET, SOCK_DGRAM) # 建立UDP套接字,使用IPv4協定
message = raw_input('Input lowercase sentence:').encode()  #使用者輸入資訊,并編碼為bytes以便發送
clientSocket.sendto(message, (serverName, serverPort)) # 将資訊發送到伺服器
modifiedMessage, serverAddress = clientSocket.recvfrom(2048) # 從伺服器接收資訊,同時也能得到伺服器位址
print(modifiedMessage.decode()) # 顯示資訊
clientSocket.close() # 關閉套接字
           

UDPServer.py

# -*- coding: utf-8 -*-

from socket import *
serverPort = 12000 # 伺服器指定的端口
serverSocket = socket(AF_INET, SOCK_DGRAM) # 建立UDP套接字,使用IPv4協定
serverSocket.bind(('',serverPort)) # 将套接字綁定到之前指定的端口
print("The server in ready to receive")
while True: # 伺服器将一直接收UDP封包
	message, clientAddress = serverSocket.recvfrom(2048) # 接收用戶端資訊,同時獲得用戶端位址
	modifiedMessage = message.upper() # 将用戶端發來的字元串變為大寫
	serverSocket.sendto(modifiedMessage, clientAddress) # 通過已經獲得的用戶端位址,将修改後的字元串發回用戶端