Python014__網路程式設計01
阿新 • • 發佈:2018-12-04
網路程式設計
desc ip 目標地址 | src ip 源地址 |
---|---|
desc port 目標埠 | src port 源埠 |
upd和tcp兩種方式
IP地址
用來標記網路上唯一的電腦,不能相同 ,尋找目標電腦的標記
- linux檢視 ip ifconfig
- windows檢視 ip ipconfig
網路號和主機號
埠號(重點)
- 埠有是用埠號來標記的,範圍0-65535
- 知名埠 0-1023 常用的埠號
- 動態埠 不常用埠,下寫程式碼的時候系統可能會隨機分配
socket
- 簡稱套接字,實現不同主機程序之間的網路通訊
tcp
import socket
socket_tcp = socket.socket(socket.AF_INET, socket.SOCKET_STREAM)
# 第一個引數是 ip 的版本 ipv4 ipv6 第二個引數是 tcp 或者 udp
socket_tcp.close()
udp
import socket socket_udp = socket.socket(socket.INET, socket.SOCKET_DGRAM) socket_udp.close()
- stream tcp
- dgram udp
udp 傳送資料
import socket udp_socket = socket.socket(AF_INET, SOCK_DGRAM) ip_port = ("127.0.0.1', 9654) # 設定埠號和IP地址 IP要雙引號 埠號不要 water = "hahahah" # udp_socket.sendto(b"demo", ip_port) udp_socket.sendto(water.encode("utf-8"), ip_port) # encode 變成某種編碼 # decode 解碼 udp_socket.close()
udp 接收資料
import socket
udp_socket = socket.socket(AF_INET, SOCK_DGRAM)
# 繫結本地資訊
local = ("", 5252)
udp_socket.bind(local) # 只能繫結自己的資訊
# 3. 接收資訊
receiv = udp_socket.recvfrom(1024) # 限制收到的大小
r1 = receiv[0] # 接收的資料
r2 = receiv[1] # 對方的資訊
print(r1.decode("gbk"))
udp_socket.close()