Usando servidor TCP y cliente en Qt

Usando servidor TCP y cliente en Qt

TCP (Protocolo de control de transmisión) es un protocolo de comunicación de Internet confiable y altamente optimizado que se usa ampliamente en diversas aplicaciones de red. En este blog, presentaremos cómo usar el servidor y cliente TCP en Qt.

Crear un servidor TCP usando Qt

Para crear un servidor TCP usando Qt, debe completar los siguientes pasos:

Paso 1: crear el objeto QTcpServer

QTcpServer *server = new QTcpServer(this);

Paso 2: escuche las solicitudes de conexión

Antes de comenzar a escuchar, debe utilizar el método listening() para especificar el número de puerto del servicio y escuchar las solicitudes de conexión desde una dirección IP específica.

if (!server->listen(QHostAddress::Any, 12345))
{
    
    
    qDebug() << "Failed to start server";
    return;
}

Paso 3: Manejar nuevas solicitudes de conexión

Cada vez que llega una nueva solicitud de conexión al servidor, QTcpServer le notificará emitiendo la señal newConnection(). Puede utilizar el método aceptar() para aceptar la conexión y crear un nuevo objeto QTcpSocket para enviar y recibir mensajes.

void MyTcpServer::newConnection()
{
    
    
    QTcpSocket *socket = server->nextPendingConnection();
    connect(socket, SIGNAL(readyRead()), this, SLOT(readData()));
    connect(socket, SIGNAL(disconnected()), socket, SLOT(deleteLater()));
}

void MyTcpServer::readData()
{
    
    
    QTcpSocket *socket = static_cast<QTcpSocket *>(sender());
    QByteArray data = socket->readAll();
    // 处理接收到的数据
}

Paso 4: enviar datos

Utilice el método write() de QTcpSocket para enviar sus datos al cliente conectado.

socket->write("Hello world");

Crear cliente TCP usando Qt

Para crear un cliente TCP usando Qt, debe completar los siguientes pasos:

Paso 1: crear el objeto QTcpSocket

QTcpSocket *m_socket = new QTcpSocket(this);

Paso 2: Conéctese al servidor

Utilice el método connectToHost() para conectar el socket al host y puerto de destino. Una vez que la conexión sea exitosa, QTcpSocket enviará la señal conectada ().

m_socket->connectToHost(QHostAddress("127.0.0.1"), 12345);

Paso 3: enviar y recibir datos

Utilice el método write() para enviar datos al servidor y procesar los datos recibidos a través de la señal readyRead().

void MyTcpClient::sendData(QString data)
{
    
    
    m_socket->write(data.toUtf8().constData());
}

void MyTcpClient::readData()
{
    
    
    QString data = m_socket->readAll();
    // 处理接收到的数据
}

Resumir

El uso de servidores y clientes TCP en Qt es un método confiable y eficiente para la comunicación en red. Las clases QTcpServer y QTcpSocket proporcionan una solución orientada a objetos que le permite desarrollar fácilmente varios tipos de aplicaciones de red.

Sin embargo, tenga en cuenta los retrasos y excepciones que pueden ocurrir por diversos motivos (como cortes de red, hosts remotos que cierran conexiones, etc.) y asegúrese de manejar estas situaciones en su código para garantizar la estabilidad de la aplicación.

Supongo que te gusta

Origin blog.csdn.net/qq_25549309/article/details/131698321
Recomendado
Clasificación