看看下面的方法是否满足你的要求?
tcpServer = new QTcpServer(this);
tcpServer->listen(QHostAddress::Any, 8888);
 
//设置响应TCP客户端连接请求的命令
connect(tcpServer, &QTcpServer::newConnection,
            [=]()//这里是一个Lamda表达式函数定义
            {
                OnProcessNewConnectEvent2();
            }
        );
 
 
 
void MainWindow::OnProcessNewConnectEvent2()
{
    if(tcpServer==nullptr)
        return;
 
    //取出建立好连接的套接字
    QTcpSocket* tcpSocket = tcpServer->nextPendingConnection();
    //获取对方的IP和端口
    QString ip = tcpSocket->peerAddress().toString();
    qint16 port = tcpSocket->peerPort();
    QString temp = QString("[%1:%2]:成功连接").arg(ip).arg(port);
    ui->textEditRead->setText(temp);
 
    //设置响应接收处理方法(这里也是采用Lamda表达式函数来写的)
    connect(tcpSocket, &QTcpSocket::readyRead,
            [=]()
            {
                //从通信套接字中取出内容
                QByteArray array = tcpSocket->readAll();
                ui->textEditRead->append(array);
 
//给对方发送数据
                QString str = "abcd";
                tcpSocket->write(str.toUtf8().data());
            }
    );
 
    //设置响应远方断开处理方法(这里也是采用Lamda表达式函数来写的)    
    connect(tcpSocket, &QTcpSocket::disconnected,
            [=]()
            {
                //经过测试这里的tcpSocket虽然在调试的时候QT提示是无效指针,但实际确实是等于原来有效的tcpSocket指针值
            }
    );
}