python3 UDP協議下的socket


---------------------------------------udp_server.py---------------------------------------

# coding:utf-8
import socket

udp_server = socket.socket(type=socket.SOCK_DGRAM)  # 創建socket對象,DGRAM:datagram 數據報文,UDP協議通信
ip_port = ("127.0.0.1", 8001)
udp_server.bind(ip_port)  # 綁定IP和端口號
from_client_msg, client_addr = udp_server.recvfrom(1024)  # 接收來自客戶端的消息
print("來自客戶端的消息:", from_client_msg.decode("utf-8"))
server_input = input(">>>: ").strip()
udp_server.sendto(server_input.encode("utf-8"), client_addr)  # 給客戶端發送消息
udp_server.close()  # 關閉連接


---------------------------------------udp_client.py---------------------------------------

# coding:utf-8
import socket

udp_client = socket.socket(type=socket.SOCK_DGRAM)  # 創建socket對象,DGRAM:datagram 數據報文,UDP協議通信
ip_port = ("127.0.0.1", 8001)
client_input = input(">>>: ").strip()
udp_client.sendto(client_input.encode("utf-8"), ip_port)  # 給服務端發送消息
from_server_msg, server_addr = udp_client.recvfrom(1024)  # 接收來自服務端的消息,最大為1024B
print("來自服務端的消息:", from_server_msg.decode("utf-8"))
udp_client.close()  # 關閉連接


UDP練習的需求是這樣的:
1、服務端需要提供的服務有:接收消息(時間格式的字符串)、將我的本地的時間轉換成接收到的消息的格式(也就是個時間格式的字符串)、發回給客戶端。
2、客戶端自行想一下怎么寫。

---------------------------------------practice_udp_server.py---------------------------------------

# coding:utf-8
import socket
import time

udp_server = socket.socket(type=socket.SOCK_DGRAM)
ip_port = ("127.0.0.1", 8001)
udp_server.bind(ip_port)
from_client_msg, addr = udp_server.recvfrom(1024)
print("來自客戶端的消息:", from_client_msg.decode("utf-8"))
udp_server.sendto(time.strftime("%Y-%m-%d %X").encode("utf-8"), addr)
udp_server.close()


---------------------------------------practice_udp_client.py---------------------------------------

# coding:utf-8
import socket

udp_client = socket.socket(type=socket.SOCK_DGRAM)
ip_port = ("127.0.0.1", 8001)
client_input = input("格式化時間: ").strip()
udp_client.sendto(client_input.encode("utf-8"), ip_port)
from_server_msg, addr = udp_client.recvfrom(1024)
print("來自服務端的消息:", from_server_msg.decode("utf-8"))
udp_client.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM