如何通过Python socket实现高效连续传输视频数据帧(图片流)?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1357个文字,预计阅读时间需要6分钟。
目录遇到的问题代码问题记录代码客户端clien.py服务端server.py遇到的问题网上找到了一些代码,但都只能建立一次socket传输一张图片,然后断开,需要重新连接和传输。
目录
- 遇到的问题
- 代码问题记录(需要代码的可以直接文末)
- 代码
- 客户端clien.py
- 服务端server.py
遇到的问题
网上找了一些代码,都是只能建立一次socket传输一张图片,然后断开重新连重新传。而建立一次socket代价不小,反复建立会非常消耗系统资源,因此尝试自己通过一次socket连续传输多张图片
代码问题记录(需要代码的可以直接文末)
在做的过程中发现了一些问题:
socket在传一张图片时是以二进制流的形式传输,图片的二进制流比较大,一般一次传不完,要传很多次。那么接受者是如何知道什么时候才停止接收这张图片呢?那可以让发送者在发图之前先发一个头信息,告诉接收者这个二进制流有多长,然后接收者通过这个来判断是否传完。
这个问题是最让我致命的,由于发送者先发了一个头信息,使用socket.send()函数,然后发送图片也是要用socket.send()函数,接收端使用的是socket.recv(1024)函数,1024是缓存大。
本文共计1357个文字,预计阅读时间需要6分钟。
目录遇到的问题代码问题记录代码客户端clien.py服务端server.py遇到的问题网上找到了一些代码,但都只能建立一次socket传输一张图片,然后断开,需要重新连接和传输。
目录
- 遇到的问题
- 代码问题记录(需要代码的可以直接文末)
- 代码
- 客户端clien.py
- 服务端server.py
遇到的问题
网上找了一些代码,都是只能建立一次socket传输一张图片,然后断开重新连重新传。而建立一次socket代价不小,反复建立会非常消耗系统资源,因此尝试自己通过一次socket连续传输多张图片
代码问题记录(需要代码的可以直接文末)
在做的过程中发现了一些问题:
socket在传一张图片时是以二进制流的形式传输,图片的二进制流比较大,一般一次传不完,要传很多次。那么接受者是如何知道什么时候才停止接收这张图片呢?那可以让发送者在发图之前先发一个头信息,告诉接收者这个二进制流有多长,然后接收者通过这个来判断是否传完。
这个问题是最让我致命的,由于发送者先发了一个头信息,使用socket.send()函数,然后发送图片也是要用socket.send()函数,接收端使用的是socket.recv(1024)函数,1024是缓存大。

