1. 程式人生 > >Python014__網路程式設計01

Python014__網路程式設計01

網路程式設計

desc ip 目標地址 src ip 源地址
desc port 目標埠 src port 源埠

updtcp兩種方式

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()