python-網路-udp
python-網路-udp
標籤(空格分隔): python
開發環境:windows Pycharm+python3.*
工具:網路除錯助手
UDP[client]-傳送資料
from socket import * # 1. 建立udp套接字 socket = socket(AF_INET, SOCK_DGRAM) # 2. 準備接收方的地址 # '192.168.1.103'表示目的ip地址 # 8080表示目的埠 addr = ('192.168.1.103', 8080)# 注意 是元組,ip是字串,埠是數字(int) # 3. 從鍵盤獲取資料 send_data = input("請輸入要傳送的資料:") # 4. 傳送資料到指定的電腦上的指定程式中 socket.sendto(send_data.encode('gbk'), addr) # 5. 關閉套接字 socket.close()
注意點
- addr 是個元組(tuple) ip是sring | port是int
- 網路除錯助手是gbk編碼格式 注意中文的轉換 string.encode('編碼') | string.decode('解碼')
UDP[server]-接收資料
from socket import * s =socket(AF_INET, SOCK_DGRAM) s.bind(('', 9090)) # 繫結ip,port ip不用寫 content, addr = s.recvfrom(1024) # 接收資料 最大 1024 print('recvfrom : %s'%content.decode('gbk')) print('addr: %s:%d'%addr) s.close()
注意點
- bind 引數是元組(tuple) ip,port
- s.recvfrom(1024) 的返回值也是元組,所以可以直接拆包:返回的格式: ('xxxx', (ip,port))
- 中文字元解碼問題 decode('gbk') # 根據真實環境配置