0
나는 TCP를 통해 일부 이미지를 보내야하는 응용 프로그램을 만들고 있습니다.qtcpsocket 통해 qimage 보내기 : 데이터의 일부만 수신
보내는 부분은
QImage image;
image.load("image.png", "PNG");
image.setText("name", "color");
QByteArray ba;
QBuffer buffer(&ba);
image.save(&buffer, "PNG");
int bsize = ba.size();
sendData(MESSAGE_BACKGROUND_COLOR, QString::number(ba.size()).toStdString());
int bsent = m_tcpSocket->write(ba, ba.size());
if(!m_tcpSocket->waitForBytesWritten(-1))
{
qDebug() << "written Bytes error " << m_tcpSocket->errorString();
}
m_tcpSocket->flush();
클라이언트입니다 :
QByteArray buffer;
buffer = m_ConnectedClients[i]->read(messageSize);
int bytesS = buffer.size();
QImage image;
image.loadFromData(buffer.data());
if (image.isNull())
{
qDebug("The image is null. Something failed.");
}
문제는 서버가 모든 데이터를 보내는 것 같다 경우, 클라이언트는 헤더를 수신입니다 ..
(물론 프로그램이 라인에서 충돌 함)
image.loadFromData (buffer.data());
은 TCP 통신은
어떤 아이디어 ... 텍스트 만이 확인을 통해 이동 포함 된 다른 메시지 때문에, 작품을 좋아?
미리 감사드립니다. 나는 모든 데이터를 가지고 때까지 소켓에서 읽을 수있는 수신 끝을 설정하는 데 필요한
다른 사람이 같은 문제가있는 경우