首页 > 编程语言 >Python socket传输图像文件

Python socket传输图像文件

时间:2024-11-06 11:19:29浏览次数:1  
标签:count socket Python cv2 newbuf stringData 图像文件

客户端发送图像文件

import socket
data= numpy.frombuffer(stringData, numpy.uint8) # 将获取到的字符流数据转换成1维数组
# decimg= cv2.imdecode(data, cv2.COLOR_BGR2GRAY) # 将数组解码成图像
# cv2.imwrite("./test.jpg",decimg)
# imencode()将图片格式转换(编码)成流数据,赋值到内存缓存中,主要用于图像数据格式的压缩,方便网络传输
result, imgencode = cv2.imencode('.jpg', decimg)
data = numpy.array(imgencode)
stringData = data.tostring()
# ljust()返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串

client = socket.socket()
# 连接服务器
addr = ('127.0.0.1', 9999)
client.connect(addr)
sock.send(str.encode(str(len(stringData)).ljust(16)))
sock.send(stringData)

服务器读取图像文件

import socket
address = ('127.0.0.1', 9999)
# 创建socket对象,同时设置通信模式,AF_INET代表IPv4,SOCK_STREAM代表流式socket,使用的是tcp协议
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定到我们刚刚设置的ip和端口元组,代表我们的服务运行在本机的9999端口上
server.bind(address)
# 开始TCP连接监听,参数指定在拒绝连接之前,操作系统可以挂起的最大连接数量
# 该值至少为1,大部分应用程序设为5就可以了
server.listen(5)

buf = b''  # buf是一个byte类型
while count:
    # 接受TCP套接字的数据。数据以字符串形式返回,count指定要接收的最大数据量.
    newbuf = sock.recv(count)
    if not newbuf:
        return None
    buf += newbuf
    count -= len(newbuf)

标签:count,socket,Python,cv2,newbuf,stringData,图像文件
From: https://www.cnblogs.com/sgqmax/p/18529620

相关文章

  • Python(logging.getLogger().info())
    目录1.getLogger()函数2.info()方法3.配置日志级别4.示例代码5.其他日志级别方法6.使用场景logging.getLogger().info()是Python的logging模块中用于记录信息级别(infolevel)日志的函数。logging是一个Python内置模块,提供了日志记录功能。它支持不同的日志级别,不......
  • Python进程管理:创建和协调多进程的深入指南
    在Python中,进程是操作系统进行资源分配和调度的一个独立单位。与线程相比,进程拥有独立的内存空间,这使得它们在执行多任务时更加稳定,但也带来了更高的资源消耗。本文将深入探讨如何在Python中创建和管理进程,包括详细的代码示例,帮助你掌握多进程编程的技巧。1.理解进程进程......
  • Python多线程编程:创建和管理线程的详细指南
    在现代编程中,多线程是一种常见的并发执行技术,它允许程序同时执行多个任务。Python作为一种高级编程语言,提供了多种方式来实现多线程编程。本文将详细介绍如何在Python中创建和管理线程,包括必要的代码示例,以帮助你更好地理解和应用多线程技术。1.理解线程线程是操作系统能......
  • Python Turtle:绚丽多彩的烟花动画
    以下是一个使用Python的turtle库实现的烟花动画程序示例:收起python复制importturtleimportrandomimporttime#创建画布screen=turtle.Screen()screen.bgcolor("black")screen.title("FireworksAnimation")#烟花颜色列表colors=["red","orange&q......
  • Python:用 turtle 库打造趣味动画 —— 基础示例与进阶拓展
    以下是一个使用Python的matplotlib库实现的简单动画程序示例,展示了一个正弦波动态变化的效果,标题为《Python与Matplotlib:动态正弦波动画展示》。收起python复制importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.animationasanimation#创......
  • Python酷库之旅-第三方库Pandas(192)
    目录一、用法精讲891、pandas.Index.nunique方法891-1、语法891-2、参数891-3、功能891-4、返回值891-5、说明891-6、用法891-6-1、数据准备891-6-2、代码示例891-6-3、结果输出892、pandas.Index.value_counts方法892-1、语法892-2、参数892-3、功能892-4、返......
  • 讲解Python选择语句
    Python选择语句1.`if`语句语法:示例:2.`else`语句语法:示例:3.`elif`语句语法:示例:4.嵌套选择语句示例:5.条件表达式(TernaryOperator)示例:6.布尔值与条件表达式示例:7.多重条件判断示例:8.总结与应用场景Python中的选择语句(也称为条件语句)用于根据不同的条......
  • python+flask计算机毕业设计果园管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于果园管理系统的研究,现有研究多侧重于果园的生产环节管理,如自动化灌溉、病虫害监测等技术层面的应......
  • python+flask计算机毕业设计共享自习室小程序(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于共享自习室小程序的研究,现有研究多侧重于自习室的基本功能和运营模式等方面,如自习室的预约、计费等基础功能的实现。专门针对将......
  • python+flask计算机毕业设计广电集团客户管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于广电集团客户管理系统的研究,现有研究多集中于广播电视业务的传播、技术革新等方面,专门针对广电集团客户管理系统的研究较少。在客......