Python socket實現客戶端和服務器端傳輸圖片

使用python在網絡上傳送圖片數據,需要以byte格式讀取圖片,這樣纔可以通過socket傳輸。

當客戶端連上服務器,服務器首先把圖片數據的尺寸傳輸過去,然後再傳輸圖片。

服務器端代碼

# server
import socket               # 導入 socket 模塊

s = socket.socket()         # 創建 socket 對象
host = socket.gethostname()  # 獲取本地主機名
port = 12345                # 設置端口
s.bind((host, port))        # 綁定端口

pic_path = r'd:\Pictures\7.JPG'

with open(pic_path, 'rb') as f:
    data = f.read()

s.listen(5)                 # 等待客戶端連接
while True:
    conn, addr = s.accept()     # 建立客戶端連接
    print('連接地址:', addr)
    conn.send(str(len(data)).encode('utf-8'))
    conn.send(data)
    conn.close()                # 關閉連接

客戶端連接到服務器端後,會首先接收圖片數據大小以方便處理,然後接收圖片數據,寫到路徑下。

客戶端代碼

import socket  # 導入 socket 模塊


s = socket.socket()  # 創建 socket 對象
host = socket.gethostname() 
port = 12345  # 設置端口號

s.connect((host, port))
r = s.recv(1024)
print(r)
data_len = eval(r)
data = s.recv(data_len)
s.close()


with open(r'C:\Users\Desktop\1.png', 'ba') as f:
    f.write(data)
    f.close()

 

參考:https://www.runoob.com/python/python-socket.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章