muy simple con QTcpSocket. Comience como lo hizo ...
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();
}
Tenga en cuenta, sin embargo, que para la lectura de la TcpSocket puede recibir los datos en más de una transmisión, es decir. cuando el servidor le envía la cadena "123456", puede recibir "123" y "456". Es su responsabilidad verificar si la transmisión está completa. Desafortunadamente, esto casi siempre da como resultado que su clase tenga estado: la clase debe recordar qué transmisión está esperando, si ya ha comenzado y si está completa. Hasta ahora, no he encontrado una manera elegante de evitar eso.
Muy agradecido Robin, ¿podría proporcionar algo de código para recibir datos? –
Claro. Edité mi respuesta en consecuencia. – Robin
¡Gracias, señor! –