服务器发送ID和图片
void MsgSocket::slotImage(const QString &id, const QImage &image)
{
QString l_id = id;
m_msgType = MsgType_Image;
QByteArray byteBuffer;
QDataStream out(&byteBuffer, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_6);
QBuffer buffer; ***
buffer.open(QIODevice::ReadWrite); ***
image.save(&buffer,"PNG"); ***
out << (quint16)0;
out << m_msgType;
out << l_id;
out << buffer.data(); ***
out.device()->seek(0);
out << (quint16)(buffer.size() - sizeof(quint16));
qDebug() << byteBuffer.length();
m_tcpSocket->write(byteBuffer);
}
客户端接ID和图片
///读取服务器发过来的socket
void MsgSocket::slotReadyRead()
{
QDataStream in(m_tcpSocket);
in.setVersion(QDataStream::Qt_4_6);
if(m_tcpBlockSize == 0)
{
if(m_tcpSocket->bytesAvailable()<sizeof(quint16))
return;
in >> m_tcpBlockSize;
}
if(m_tcpSocket->bytesAvailable() < m_tcpBlockSize)
return;
QString id;
in >> id;
QImage image; ***
QByteArray byteArray; ***
in >> byteArray; ***
image.loadFromData(byteArray);//这个就是存进去的QImage了 ***
if(image.isNull())
{
qDebug() << "NULL";
}
}
QT网络通信数据流转图片
最新推荐文章于 2023-03-09 14:51:21 发布