Search code examples
javaqtclient-servertransfer

java qt server/client dta transfer


I created a client (created by JAVA) and a server (by qt/c++), but I have a data transfer problem (something wrong with format I think).

The server side code:

void Pirate::DateArrived()
{
QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());  
QDataStream in (socket);
qDebug()<< socket->bytesAvailable();// here it give me the number of chars i sent in this ex:3
QString cmd ;
in >> cmd;
qDebug()<< cmd.size(); // here it always stay 0
qDebug() << cmd; // always ""

}
public void SendData(String data) throws IOException
    {
        OutputStream theOutput = socket.getOutputStream();
        OutputStreamWriter out = new OutputStreamWriter(theOutput);
        out.write("abc");
        out.flush();
    }

Solution

  • According to the docs, when you deserialize a QString, it is expected that the data will consist of the string length in bytes (quint32) followed by the data in UTF-16.