QLocalSocket和QLocalServer的简单使用

本文介绍了如何在QT编程中使用QLocalServer实现单实例程序运行,利用QLocalSocket进行本地通信,并展示了如何用QTime测量函数执行时间、QStringList存储字符串、QDataStream构建信令包、QTimer单次触发槽函数等实用技巧。
摘要由CSDN通过智能技术生成
1、用QTime统计某函数执行消耗时间。
   QTime t;
   t.start();
   some_lengthy_task();
   qDebug("Time elapsed: %d ms", t.elapsed());


2、采用QLocalServer实现QT程序的单实例运行
   QLocalServer *server;
   server = new QLocalServer(this);
   if (!server->listen("fortune")) {
        QMessageBox::critical(this, tr("Fortune Server"),
                              tr("Unable to start the server: %1.")
                              .arg(server->errorString()));
        close();
        return;
   }


3、使用QStringList存储若干预定字符串。
    QStringList fortunes;
    fortunes << tr("You've been leading a dog's life. Stay off the furniture.")
             << tr("You've got to think about tomorrow.")
             << tr("You will be surprised by a loud noise.")
             << tr("You will feel hungr
要在Qt的QLocalServer和QLocalSocket之间相互发送消息,您需要遵循以下步骤: 1. 在QLocalServer中,使用`newConnection()`信号来接受来自客户端的新连接,并在连接成功时创建一个QLocalSocket实例,并保存该实例以便稍后使用。 2. 在QLocalSocket中,使用`connected()`信号来检测与服务器的连接是否成功,并在连接成功时使用`write()`函数向服务器发送消息。 3. 在QLocalServer中,使用`readyRead()`信号来检测来自客户端的消息,并使用`readAll()`函数读取所有可用的字节数据。 4. 在QLocalSocket中,使用`readyRead()`信号来检测来自服务器的消息,并使用`readAll()`函数读取所有可用的字节数据。 下面是一个简单的示例代码,演示如何在QLocalServer和QLocalSocket之间相互发送消息: ```cpp // Server QLocalSocket *clientConnection; QLocalServer *server = new QLocalServer(this); if (!server->listen("myserver")) { qDebug() << "Unable to start the server: " << server->errorString(); return; } // accept new connections connect(server, &QLocalServer::newConnection, [&](){ clientConnection = server->nextPendingConnection(); }); // handle incoming messages from client connect(clientConnection, &QLocalSocket::readyRead, [&](){ QByteArray message = clientConnection->readAll(); qDebug() << "Received message from client: " << message; }); // Client QLocalSocket *socket = new QLocalSocket(this); // connect to the server socket->connectToServer("myserver"); // handle connection success connect(socket, &QLocalSocket::connected, [&](){ qDebug() << "Connected to server"; socket->write("Hello from client"); }); // handle incoming messages from server connect(socket, &QLocalSocket::readyRead, [&](){ QByteArray message = socket->readAll(); qDebug() << "Received message from server: " << message; }); ``` 这里我们在QLocalServer中监听名为“myserver”的本地套接字,并在`newConnection()`信号中接受新连接。在客户端连接成功后,我们使用`write()`函数向服务器发送消息。在QLocalServer中,我们使用`readyRead()`信号来检测来自客户端的消息,并使用`readAll()`函数读取所有可用的字节数据。在QLocalSocket中,我们使用`readyRead()`信号来检测来自服务器的消息,并使用`readAll()`函数读取所有可用的字节数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值