2012-02-02 13 views
2

クライアント(JAVAで作成)とサーバ(qt/C++で)を作成しましたが、データ転送の問題があります。java qtサーバ/クライアントdta転送

サーバ側コード:あなたがQStringをデシリアライズする際

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(); 
    } 

答えて

0

docsによれば、UTFのデータに続くデータはバイト(quint32)における文字列の長さで構成されることが期待されます-16。

+0

答えていただきありがとうございます。問題を解決するにはどうすればよいですか? – unfamous

+0

おかげさまで、ありがとうございました。誰かが同じ問題を抱えている場合は、QDataStreamをQTextStreamに切り替えて再度感謝してください – unfamous