iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python使用tcp传输图片数据
  • 656
分享到

python使用tcp传输图片数据

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了python使用tcp传输图片数据的具体代码,供大家参考,具体内容如下 数据包格式如下 客户端: import Socket import sys HOST,PORT = "172.18

本文实例为大家分享了python使用tcp传输图片数据的具体代码,供大家参考,具体内容如下

数据包格式如下

客户端:


import Socket
import sys
 
HOST,PORT = "172.18.0.3",19984
 
def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((HOST, PORT))
    
    #包头标志
    arrBuf = bytearray(b'\xff\xaa\xff\xaa')
    
    #以二进制方式读取图片
    picData = open('1.jpg', 'rb')
    picBytes = picData.read()
    
    #图片大小
    picSize = len(picBytes)
    
    #数据体长度 = guid大小(固定) + 图片大小
    datalen = 64 + picSize
    
    #组合数据包
    arrBuf += bytearray(datalen.to_bytes(4, byteorder='little'))
    guid = 23458283482894382928948
    arrBuf += bytearray(guid.to_bytes(64, byteorder='little'))
    arrBuf += picBytes
    
    sock.sendall(arrBuf)
    sock.close()
 
if __name__ == '__main__':
    main()

服务端:


import socketserver
import os
import sys
import time
import threading
 
ip_port=("172.18.0.3",19984)
 
class MyServer(socketserver.BaseRequestHandler):
    def handle(self):
        print("conn is :",self.request) # conn
        print("addr is :",self.client_address) # addr
        
        while True:
            try:
                self.str = self.request.recv(8)
                data = bytearray(self.str)
                headIndex = data.find(b'\xff\xaa\xff\xaa')
                print(headIndex)
                
                if headIndex == 0:
                    allLen = int.from_bytes(data[headIndex+4:headIndex+8], byteorder='little')
                    print("len is ", allLen)
 
                    curSize = 0
                    allData = b''
                    while curSize < allLen:
                        data = self.request.recv(1024)
                        allData += data
                        curSize += len(data)
 
                    print("recv data len is ", len(allData))
                    #接收到的数据,前64字节是guid,后面的是图片数据
                    arrGuid = allData[0:64]
                    #去除guid末尾的0
                    tail = arrGuid.find(b'\x00')
                    arrGuid = arrGuid[0:tail]
                    strGuid = str(int.from_bytes(arrGuid, byteorder = 'little')) #for test
                    
                    print("-------------request guid is ", strGuid)
                    imgData = allData[64:]
                    strImgFile = "2.jpg"
                    print("img file name is ", strImgFile)
 
                    #将图片数据保存到本地文件
                    with open(strImgFile, 'wb') as f:
                        f.write(imgData)
                        f.close()
                        
                    break
            except Exception as e:
                print(e)
                break
 
 
if __name__ == "__main__":
    s = socketserver.ThreadingTCPServer(ip_port, MyServer)
    print("start listen")
    s.serve_forever()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: python使用tcp传输图片数据

本文链接: https://www.lsjlt.com/news/11021.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python使用tcp传输图片数据
    本文实例为大家分享了python使用tcp传输图片数据的具体代码,供大家参考,具体内容如下 数据包格式如下 客户端: import socket import sys HOST,PORT = "172.18...
    99+
    2022-06-02
    python tcp传输图片数据 python传输数据 python传输图片数据
  • python使用socket高效传输视频数据帧(连续发送图片)
    目录遇到的问题代码问题记录(需要代码的可以直接文末)代码客户端clien.py服务端server.py遇到的问题 网上找了一些代码,都是只能建立一次socket传输一张图片,然后断开...
    99+
    2022-11-12
  • Java使用TCP实现数据传输实例详解
    Java使用TCP实现数据传输实例详解TCP所提供服务的主要特点:  1.面向连接的传输;  2.端到端的通信;  3.高可靠性,确保传输数据的正确性,不出现丢失或乱序;  4.全双工方式传输;  5.采用字节流方式,即以字节为单位传输字节...
    99+
    2023-05-31
    java tcp 数据传输
  • 实现一款高可用的 TCP 数据传输服务器(Java版)
    1.netty能做什么 首先netty是一款高性能、封装性良好且灵活、基于NIO(真·非阻塞IO)的开源框架。可以用来手写web服务器、TCP服务器等,支持的协议丰富,如:常用的HTTP/HTTPS/WEBSOCKET,并且提供的大量的方法...
    99+
    2023-09-15
    java tcp/ip 服务器
  • python使用socket实现图像传输功能
    在python中使用socket进行linux服务器与win10主机间的图像传输,供大家参考,具体内容如下 前提:服务器与主机需要在同一局域网内 使用方法: (1)分别将下面两段代码存入对应位置 (2)先运行服务器端...
    99+
    2022-06-02
    python socket 图像传输
  • 单片机数据传输用什么加密算法
    常用于单片机数据传输的加密算法有以下几种TEA算法TEA是一种分组加密算法,使用的是64位的明文分组、128位的密钥和Feistel分组加密框架,需要进行64轮迭代,且TEA算法中使用了一个神秘常数δ作为倍数,源于黄金比率,可以保证每一轮的...
    99+
    2022-10-13
  • 数据传输 | dtle 使用初探
    作者:马莹乐 爱可生研发团队成员,负责 mysql 中间件和数据库管理平台的测试。擅长找茬(测试技术爱好者),欢迎大家试用 dtle~ 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 ...
    99+
    2019-08-17
    数据传输 | dtle 使用初探
  • Go语言使用Gob传输数据
    目录创建 gob 文件读取 gob 文件为了让某个数据结构能够在网络上传输或能够保存至文件,它必须被编码然后再解码。当然已经有许多可用的编码方式了,比如 JSON、XML、Googl...
    99+
    2023-05-14
    Go语言 Gob传输数据 Go语言 传输数据
  • 使用PHP和Redis进行数据传输
    随着数据处理量的不断增加,如何高效地进行数据传输已成为许多企业面临的挑战。在此背景下,PHP和Redis的组合,成为了一种可行的数据处理解决方案。本文将介绍如何使用PHP和Redis进行数据传输,以及它的优势和适用场景。一、什么是Redis...
    99+
    2023-05-15
    PHP redis 数据传输
  • python实现使用遗传算法进行图片拟合
    目录引言预备知识及准备工作打开图片随机生成生物族群按照生物性状画图对比生物个体和目标图片的相似度保存图片算法主体交叉互换基因突变基因片段易位增加基因片段减少基因片段变异繁殖淘汰拟合示...
    99+
    2022-11-13
  • 怎么使用servlet向前端传输数据
    使用Servlet向前端传输数据可以通过以下步骤:1. 在Servlet中获取要传输的数据,可以从数据库、文件等地方获取数据。2. ...
    99+
    2023-08-25
    servlet
  • 怎么在ajax中使用json传输数据
    本篇文章给大家分享的是有关怎么在ajax中使用json传输数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JSON(JavaScript Object Notation) 是...
    99+
    2023-06-08
  • Go语言怎么使用Gob传输数据
    这篇文章主要讲解了“Go语言怎么使用Gob传输数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言怎么使用Gob传输数据”吧!为了让某个数据结构能够在网络上传输或能够保存至文件,它必须...
    99+
    2023-07-05
  • 如何在Python中使用二维码对象进行数据传输?
    在当今数字化的时代,二维码已经成为了一种非常常见的数据传输方式。Python作为一种流行的编程语言,自然也有相应的库可以用来生成和解码二维码。在本篇文章中,我们将会探讨如何在Python中使用二维码对象进行数据传输。 一、生成二维码对象 P...
    99+
    2023-10-23
    响应 二维码 对象
  • 使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据
    所谓图片元数据,就是除了我们肉眼看到的图片内容外,隐藏在这些内容背后的一些技术数据。本文介绍如何使用Java代码将一张图片的隐藏信息读取出来。首先不需要下载任何额外的Java库,用JDK自带的库就能工作。import java.i...
    99+
    2023-06-02
  • python如何实现使用遗传算法进行图片拟合
    小编给大家分享一下python如何实现使用遗传算法进行图片拟合,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!引言算法思路假设我们有这样一个生物族群,他们的每个基因片段都是一个个三角形(即只含三个点和颜色信息),他们每个个体...
    99+
    2023-06-29
  • 如何使用Python抓取今日头条街拍图片数据
    这篇文章主要介绍了如何使用Python抓取今日头条街拍图片数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(1)抓取今日头条街拍图片(2)分析今日头条街拍图片结构keywo...
    99+
    2023-06-22
  • 【Python】使用python通过TCP或UDP,实现收发报文数据
    文章目录 1. socket 模块2. 通过TCP收发报文3. 通过UDP收发报文 1. socket 模块 socket 又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答...
    99+
    2023-10-01
    udp tcp/ip python 网络协议
  • Android使用socket进行二进制流数据传输
    目录引言简单的自定义协议完整的代码结语引言 使用socket流传输二进制流数据,比如文件或者视频图片等等信息的时候,我们通常使用tcp协议传输,因为tcp协议可以保证二进制流按序到达...
    99+
    2023-05-15
    Android二进制流数据传输 Android二进制传输
  • PyTorch 使用torchvision进行图片数据增广
    目录使用torchvision来进行图片的数据增广1. 读取图片2. 图片增广2.1 图片水平翻转2.2 图片上下翻转2.3 图片旋转2.4 中心裁切2.5 随机裁切2.6 随机裁切...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作