osi七層結構:
應用表示
會話傳輸 傳輸層一tcp/udp
網路 ip位址
資料鏈路 mac位址
物理層傳輸方式:
tcp/ip:安全的傳輸
udp:不安全傳輸
socket流程圖:socket是在應用層和傳輸層之間的乙個抽象層,它把tcp/ip層複雜的操作抽象為幾個簡單的介面**用層呼叫已實現程序在網路中通訊。
socket模組簡單使用:
import socket
# socket 是io多路復用的乙個模組,可以同時監聽多個socket.socket()物件。
1、客戶端
client = socket.socket()
a、建立連線
client.connect(('',8080))
b、連線成功傳送資料
client.send('傳送的內容',encoding='utf-8')
c、接收對方的返回資料
data = client.recv(1024)
client.close()
2、伺服器端
server = socket.socket()
server.bind(('',8080))
server.listen(5) # 監聽的數量
conn,addr = server.accept() # 等待會話 conn 就是客戶端連線過來而在服務端為其生成的乙個連線例項
data = conn.recv(1024) # 獲取到客戶端傳送的資訊
conn.send(bytes('傳送的內容'),encoding='utf-8')
server.close()
tcp協議:
可靠傳輸,tcp資料報沒有長度限制,理論上可以無限長,但是為了保證網路的效率,通常tcp資料報的長度不會超過ip資料報的長度,以確保單個tcp資料報不必再分割。
udp協議:
不可靠傳輸,"報頭"部分一共只有8個位元組,總長度不超過65,535位元組,正好放進乙個ip資料報。
tcp報文頭:
tcp三次握手和揮手:
Python socket模組應用
socket 本文記錄了一些socket模組的簡單應用,對於具體原理還沒來得及深究。利用socket模組進行埠連線驗證和掃瞄 在linux中常用nc命令來進行遠端埠是否開放的驗證。但是這個命令並不是系統自帶的,所以還比較麻煩。如果利用python自帶的socket模組就可以比較自由地進行埠驗證了。是...
python socket 函式 模組
import socket socket 函式 1,語法格式 socket.socket family type proto family 套接字家族可以使af unix或者af inet type 套接字型別可以根據是tcp連線和udp連線分為sock stream或sock dgram prot...
python socket模組 監控埠
import socket,re 叫做非貪婪匹配,盡可能的少匹配 叫做貪婪匹配,盡可能的多匹配 a fenif1212nfi129f21f res re.compile d findall a print res hosts 1.1.1.1 90 2.2.2.2 8080 127.0.0.1 80 ...