Python socket实现客户端和服务器端传输图片

Python socket实现客户端和服务器端传输图片

2020-06-19 22:17:30发布 浏览数:482
概述: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

 

请先
登录
后评论
0 条评论
暂时没有评论
最新文章
更多