Python socket模組實現網路程式設計

2021-08-28 23:38:27 字數 1488 閱讀 6052

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 ...