python网络编程—UDP的echo服务
生活随笔
收集整理的這篇文章主要介紹了
python网络编程—UDP的echo服务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、echo服務
echo服務是一種非常有用的用于調試和檢測的工具,該協議接收到什么原樣返回客戶端
二、代碼實現echo服務
需求 UDP客戶端、客戶端可以發送多條數據,2、客戶端如果發送一個”exit“則表示客戶端退出,客戶端銷毀套接字,不占用資源,3、服務器端收到什么就返回什么
客戶端發送一個請求也需要端口,端口是隨機分配的,創建一個UDP協議的套接字,然后發送一條數據到網絡上的另外一個進程
服務端
客戶端
#定義變量,是否退出客戶端的標記 flag=True # UDP客戶端、創建套接字 client_socket = socket(AF_INET, SOCK_DGRAM) # SOCK_DGRAM:UDP協議while flag:# 2、定義一個接收消息的目標,8080是一個目標服務器的端口,127.0.0.1是目標服務器地址server_host_port = ('192.168.108.248', 8090)#todo 3、準備即將發送的數據,encode表示按照一種編碼格式把數據變成字節數組bytes# 數據一定是字節數據才能發送datas = input('請輸入:').encode('utf-8')# 4、發送數據,標識一個進程是通過ip+端口+協議client_socket.sendto(datas, server_host_port)#todo 5、一定可以從服務器上接收到返回過來的數據,打印服務器返回的數據,1024=1kbprint('返回的數據是:',client_socket.recvfrom(1024)[0].decode(encoding='utf-8'))# 6、判斷客戶端是否發出exitif datas.decode('utf-8')=='exit':flag=False# 5、關閉套接字,其實就是釋放了系統資源 client_socket.close()udp的服務器和客戶端的區分:往往是通過請求服務和提供服務來進行區分
請求服務的一方稱為:客戶端
提供服務的一方稱為:服務器
一般情況下,服務器端,需要綁定端口,目的是為了讓其他的客戶端能夠正確發送到此進程
客戶端,一般不需要綁定,而是讓操作系統隨機分配,這樣就不會因為需要綁定的端口被占用而導致程序無法運行的情況
總結
以上是生活随笔為你收集整理的python网络编程—UDP的echo服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP模拟QQ聊天案例
- 下一篇: python网络编程—TCP协议(二)