Daten über QTcpSocket
Verfasst: 22. Februar 2011 10:07
Hallo,
ich habe ein Problem mit dem QTcpSocket. Ich möchte eine Datenstruktur über den Socket versenden, habe bis ejtzt aber nur beispiele dafür gefunden einen QString oder eine QPixmap zu verschicken.
(ich habe noch nicht mit Sockets gearbeitet vorher)
mein Code bis jetzt:
(block ist ein QByteArray im header deklariert)
Das auskommentierte "out << replayCtrlStruct" ist die Zeile, wo ich denke das es in etwa so zu lösen ist.
replayCtrlStruct möchte ich über den Socket verschicken. Es sieht so aus:
in dem Struct sind Enums, andere Structs, floats und ein char array enthalten.
Wie kann ich das über einen Socket schicken?
ich habe ein Problem mit dem QTcpSocket. Ich möchte eine Datenstruktur über den Socket versenden, habe bis ejtzt aber nur beispiele dafür gefunden einen QString oder eine QPixmap zu verschicken.
(ich habe noch nicht mit Sockets gearbeitet vorher)
mein Code bis jetzt:
Code: Alles auswählen
void ReplayCtrl::ConnectSocket()
{
QString error;
QString host = "localhost";
int port = 5000;
socket->connectToHost(host, port, QIODevice::ReadWrite);
if (socket->waitForConnected(1000))
qDebug("Connected!");
else
error = socket->errorString();
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_6);
//out << replayCtrlStruct;
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
try
{
socket->write(block);
if ( !socket->waitForBytesWritten(-1) )
{
return;
}
}
catch(...)
{
return;
}
}Das auskommentierte "out << replayCtrlStruct" ist die Zeile, wo ich denke das es in etwa so zu lösen ist.
replayCtrlStruct möchte ich über den Socket verschicken. Es sieht so aus:
Code: Alles auswählen
typedef struct
{
States_E stateRun;
States_E stateRepeat;
ModeOfOperation_E modeOfOperation;
TypesOfPulse_E typesOfPulse;
float timeStart;
float timeStop;
RecordingTyp_T recordPara[MAX_RECORDING_ELEM];
unsigned int numOfChars;
char stringSource[MAX_STRLEN_SOURCE];
}ReplayCtrlIf_T;Wie kann ich das über einen Socket schicken?