molto semplice con QTcpSocket. Inizia come avete fatto ...
void MainWindow::connectTcp()
{
QByteArray data; // <-- fill with data
_pSocket = new QTcpSocket(this); // <-- needs to be a member variable: QTcpSocket * _pSocket;
connect(_pSocket, SIGNAL(readyRead()), SLOT(readTcpData()));
_pSocket->connectToHost("127.0.0.1", 9000);
if(_pSocket->waitForConnected()) {
_pSocket->write(data);
}
}
void MainWindow::readTcpData()
{
QByteArray data = pSocket->readAll();
}
essere consapevoli, però, che per la lettura dal TCPSocket è possibile ricevere i dati in più di una trasmissione, vale a dire. quando il server ti invia la stringa "123456" potresti ricevere "123" e "456". È tua responsabilità controllare se la trasmissione è completa. Sfortunatamente, questo comporta quasi sempre che la classe sia stata dichiarata: la classe deve ricordare quale trasmissione si aspetta, se è già stata avviata e se è completa. Finora, non ho trovato un modo elegante attorno a questo.
Molto obbligato Robin, potrebbe fornire qualche codice per la ricezione dei dati? –
Sicuro. Ho modificato la mia risposta di conseguenza. – Robin
Grazie signore !! –