2017-07-09 18 views
0

こんにちは私はQtでイーサネットでFPGAからデータを受信したいです。私はFPGAにデータを書き込むことはできますが、残念ながら私はデータを受け取ることができません。 fpgaにx "c000"を書き込んだ後、データを送信する必要がありますが、私のコードは起動しません。 私はこのコードを受信データ用に書きますが、私は助けてください。qtで読み取るtcpsocket

  QByteArray ba2; 
     ba2.resize(2); 
     ba2[0] = 0x00; 
     ba2[1] = 0xc0; 
     Client ob; 
     ob.connectToHost(); 
     ob.writeData(ba2); 



    QByteArray Client:: readback(QByteArray data) 
    { 
     qDebug() << socket->readAll(); 

     return data; 
    } 

void Client::connectToHost() 
{ 
socket->connectToHost("192.168.100.17", 1134); 

} 


void Client::close() 
{ 
socket->close(); 

    } 

Client::Client(QObject *parent) : QObject(parent) 
    { 
socket = new QTcpSocket(); 
connect(socket, SIGNAL(readyRead()), this, SLOT(readback(QByteArray data))); 

     } 

答えて

0

それを非同期的に試してみてください。

auto t = make_unique<QTcpSocket>(); 
QObject::connect(t.data(),&QTcpSocket::connected,[&t](){ 
QDataStream writer(t.data()); 
writer << static_cast<quint16>(0xc000); 
}); 
QObject::connect(t.data(),&QTcpSocket::readyRead,[&t](){ 
qDebug() << t->readAll(); 
}); 
+0

はそれがreadyread beacaus私の問題を解決するカント()いけない仕事。 – mehdi

+0

そのスレッドにイベントループがありますか?あなたは何とかそれをブロックしていますか(例えば 'while(true)')? – IlBeldus

関連する問題