Mein Ziel ist es ein QImage von einer Serverapllikation an alle verbundenen Clients zu schicken (für den Anfang reicht auch erstmal an einen Client). Die Kommunikation mit QStrings hat bisher erfolgreich geklappt. Falls es wichtig ist, ich verwende QT 4.4.3 unter Vista.
Hier mein wesenlticher Code dazu:
Der Code auf der Serverseite
Code: Alles auswählen
void VideoServer::slotSendMessage(const QImage& image)
{
// send a Message to all connected clients
for (int i = 0; i < connectedSockets.count(); ++i)
{
QDataStream stream(connectedSockets[i]);
stream << image;
// stream << (QVariant) image; // brachte auch kein Erfolg
QString saveName;
int number = 200;
saveName = QString("F:/Workcells_VERSOSIM/CamPics/test%1.jpg").arg(number,0,10);
bool result = image.save(saveName);
}
}
Code: Alles auswählen
void VideoClient::con()
{
number = 0;
connectToServer("127.0.0.1", 5554);
if (isConnected())
{
connect(&socket, SIGNAL(readyRead()),
this, SLOT(slotReciveMessage()));
}
}
void VideoClient::slotReciveMessage()
{
QVariant variant;
QImage image;
QImage image2;
QDataStream stream(&socket);
while (!stream.atEnd())
{
stream >> image;
stream >> value;
}
QImage image2 = variant.value<QImage>();
QString saveName;
number++;
saveName = QString("F:/Workcells_VERSOSIM/CamPics/test%1.jpg").arg(number,0,10);
bool result = image.save(saveName);
}
Hat jemand eine Idee was ich ausprobieren könnte oder wie ich die Ursache des Problems finden könnte?
Bin für jeden Tipp dankbar!
Grüße Rumbert