天天看點

Python socket子產品實作網絡程式設計

一、網絡基礎

Python socket子產品實作網絡程式設計
OSI七層結構:
應用
表示
會話
傳輸 傳輸層一TCP/UDP
網絡 IP位址
資料鍊路 mac位址
實體層


傳輸方式:
TCP/IP:安全的傳輸
UDP:不安全傳輸
           

二、socket的使用

socket流程圖:

socket是在應用層和傳輸層之間的一個抽象層,它把TCP/IP層複雜的操作抽象為幾個簡單的接口供應用層調用已實作程序在網絡中通信。

Python socket子產品實作網絡程式設計

socket子產品簡單使用: 

import socket
# socket 是IO多路複用的一個子產品,可以同時監聽多個socket.socket()對象。

1、用戶端
client = socket.socket()
a、建立連接配接
client.connect(('http://127.0.0.1',8080))
b、連接配接成功發送資料
client.send('發送的内容',encoding='utf-8')
c、接收對方的傳回資料
data = client.recv(1024)
client.close()


2、伺服器端
server = socket.socket()
server.bind(('http://127.0.0.1',8080))
server.listen(5) # 監聽的數量
conn,addr = server.accept() # 等待會話 conn 就是用戶端連接配接過來而在服務端為其生成的一個連接配接執行個體
data = conn.recv(1024) # 擷取到用戶端發送的資訊
conn.send(bytes('發送的内容'),encoding='utf-8')
server.close()
           

三、TCP 協定

tcp協定:

可靠傳輸,TCP資料包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP資料包的長度不會超過IP資料包的長度,以確定單個TCP資料包不必再分割。

udp協定:

不可靠傳輸,"報頭"部分一共隻有8個位元組,總長度不超過65,535位元組,正好放進一個IP資料包。

TCP封包頭:

Python socket子產品實作網絡程式設計

TCP三向交握和揮手:

Python socket子產品實作網絡程式設計

繼續閱讀