qt客户端显示服务器发送的图片,c++ - Qt客户端服务器应用程序“发送图像”出现问题 - 堆栈内存溢出...
我正在尝试通过QDataStream从客户端向服务器发送图像( OpenCV Mat )。 第一项是int,即缓冲区的大小。 它可以处理10到15张图片,然后服务器读取第一个int随机数(通常〜2 ^ 30),这会导致应用崩溃。 这是客户端,处于一个循环中(图像来自摄像头,周期为500ms):
//1) encode to jpg
cv::vector buf;
cv::imencode(".jpg", *mat, buf);
//2) write to buffer
QByteArray buffer;
QDataStream out(&buffer, QIODevice::WriteOnly);
out << int(0); // save place for an int which represents the buffer size
for(cv::vector::iterator it = buf.begin(); it != buf.end(); ++it)
{
out << *it; //write each byte
}
out.device()->seek(0); //write the buffer size
out << buffer.size();
qDebug() << "Sent " << buffer.size() << "bytes";
qint64 bytesSent = socket->write(buffer);
if(bytesSent < buffer.size())
{
if(bytesSent != -1)
{
qDebug() << "Transmit Error! Sent " << bytesSent << " out of " << buffer.size();
}
else
{
qDebug() << socket->errorString();
}
}
服务器端:
QDataStream in(socket);
int msgSize = -1;
//first read the size as an int
if(socket->bytesAvailable())
{
in >> msgSize;
}
qDebug() << "Read image size: " << msgSize << "bytes";
//wait until all bytes all available
while(socket->bytesAvailable() < ( qint64 ) ( ( qint64 )msgSize - sizeof(int) ) )
{
if(!socket->waitForReadyRead())
{
qDebug() << "Disconnected: " << socket->errorString();
socket->disconnectFromHost();
break;
}
}
qDebug() << "Bytes recieved: " << msgSize;
QByteArray ba;
quint8 byte;
for(int i = 0; i < msgSize - 1; ++i)
{
in >> byte;
ba.append(byte);
}
cv::Mat imgbuf = cv::Mat(FRAME_WIDTH, FRAME_HEIGHT, CV_8UC3, ba.data());
cv::Mat matImg = cv::imdecode(imgbuf, CV_LOAD_IMAGE_COLOR);
两个套接字都是QTcpSocket 。
输出示例:
The server side:
Read image size: 67551 bytes
Bytes recieved: 67551
Read image size: 56924 bytes
Bytes recieved: 56924
Read image size: 70027 bytes
Bytes recieved: 70027
Read image size: -2046830337 bytes
Bytes recieved: -2046830337
Read image size: -536866742 bytes
Bytes recieved: -536866742
Read image size: 1179207168 bytes
At this point it tries to read 1179207168 bytes.
The client side:
Sent 67551 bytes
Sent 56924 bytes
Sent 70027 bytes
Sent 70277 bytes
Sent 85633 bytes
Sent 65155 bytes
etc ...
只有前三个成功。
qt客户端显示服务器发送的图片,c++ - Qt客户端服务器应用程序“发送图像”出现问题 - 堆栈内存溢出...相关推荐
- ambari 修改服务器名,ambari - Ambari无法运行用于修改用户配置单元的自定义钩子 - 堆栈内存溢出...
尝试通过Ambari(v2.7.3.0)(HDP 3.1.0.0-78)将客户端节点添加到群集,并看到奇数错误 stderr: Traceback (most recent call last): F ...
- 下载微信服务器上的图片到自己的服务器
下载微信服务器上的图片到自己的服务器 微信上传图片后 单张图片将返回serverId 多张图片将返回serverId数组,后续只需遍历下载即可 下载微信服务器上的图片 工具类 ... import j ...
- Java代码服务器上下载图片_Java如何从服务器中下载图片
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net ...
- c 传图片数据给matlab,c++ - 如何通过UDP将数据从C ++应用程序发送到Matlab并进行绘制 - 堆栈内存溢出...
我想使用Winsock通过UDP将数据从我的C ++应用程序发送到Matlab,并实时绘制数字. 例如:我得到了从1到10的数字,我想从C ++发送1,在Matlab中接收它,将其放在图形上(图,条等 ...
- android和flask交互,java - 当我从Android向Flask Web服务发送参数时,如何解决“ SSL库故障”? - 堆栈内存溢出...
我确实尝试将一些值作为" application / json "从Android应用程序发送到Flask Web服务. 这是我的Java代码 : Thread thread = ...
- ie浏览器能显示ftp协议的图片_浏览器向服务器请求一张图片,到底发生了什么?...
文章目录 动因 HTTPWATCH 用IE访问服务器端的一张png图片 观察数据 结论 本文说明了http协议传输图片的交互数据的过程和测试方法. 动因 学习编程,其实不在于编程本身.千万不要满足于会 ...
- android消息发送字符串,android - 从Android客户端通过HTTP在HL7消息中发送base64字符串时遇到错误 - 堆栈内存溢出...
我正在android客户端(API 17)中使用HL7消息,并使用Hapi库生成和解析HL7消息.当我传输小的字符串值时,该消息工作正常. 但是我必须通过Http将图像发送到HL7服务器,为此,我正在 ...
- cloudtalk 无法连接到消息服务器,solr - Solr Cloud down无法与Zookeeper对话客户端会话超时 - 堆栈内存溢出...
我有在16GB RAM内存上运行的solr云,用于分片的2个solr节点(相同ip),嵌入式zookeeper. 我在默认配置上运行solr,尽管默认配置随附-Xms5g-Xmx5g,但我在Solr仪 ...
- html图片按页码显示,html - 在打印html文档时显示页码 - 堆栈内存溢出
几个月前,当我使用以下代码在浏览器(firefox)中打印HTML文档时,能够显示页码: body { width: 300px; counter-reset: page; } #header { b ...
最新文章
- php 语言文件操作,php中目录文件操作详谈
- idea findbugs使用_「测试」 - 静态测试 amp; FindBugs
- STL 之find,find_if,find_end,find_first_of
- RHQ指标的WildFly子系统
- Linux 命令之 tar 命令-打包和备份的归档工具(附压缩/解压工具)
- 今天看了风云II 后悔了
- Bootstrap3 模态对话框的尺寸
- python跳出两层(多层)循环--使用标志量
- 使用 Postman 调试 HTTP(s) 接口
- C# 最简单的异步委托
- DOM ------ 百度换肤
- 远程线程注入技术 屏蔽ctrl+alt+del
- yii mysql gii_YII-快速用gii创建一个简单的yii项目!
- Java入门第三天2-java循环嵌套
- 计算机专业二本可以考cfa,计算机专业的CFA考生的备考经验分享
- 【解释型语言】Python-IO
- 百度快照被劫持跳转到博彩网站 终极解决办法
- WMS系统具备的基本功能,你懂多少?
- 网上商城系统,安全重要性
- 如何将D盘空间压缩并扩展C盘?