客户端各组件之间通信 QLocalServer QLocalSocket

一、简述
1.互联网公司的客户端经常由n多个组件构成,组件之间的数据共享以及通信都是利用本地套接字完成
2.组件之间约定报文协议,定义公共字段和业务字段,各组件解析报文完成通信
二、效果图
在这里插入图片描述
三、本地套接字通信示例代码

#ifndef LOCALCHARTROOM_H
#define LOCALCHARTROOM_H

#include <QWidget>
#include <QLocalServer>
#include <QLocalSocket>
#include <QDateTime>
#include <QEventLoop>
#include <QTimer>
namespace Ui {
class LocalChartRoom;
}
class LocalChartRoom : public QWidget
{
   Q_OBJECT

public:
   explicit LocalChartRoom(QWidget *parent = nullptr);
   ~LocalChartRoom();
   void initClient();
   void initServer();

private slots:
   void on_pushButton_clicked();
   void on_pushButton_4_clicked();

   void on_ServerConnected();
   void on_ServerReadyRead();

   voi
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个使用QLocalServer和QLocalSocket进行进程通信的示例。 这是一个简单的例子,包括一个客户端和一个服务器进程。客户端将向服务器发送一条消息,服务器将接收到消息并将其显示在控制台上。以下是代码示例: server.cpp: ```cpp #include <QtNetwork/QLocalServer> #include <QtNetwork/QLocalSocket> #include <QtCore/QDebug> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QLocalServer server; if (!server.listen("test")) { qWarning() << "Unable to start the server:" << server.errorString(); return 1; } qDebug() << "Server started, waiting for client connection..."; QLocalSocket *socket = server.nextPendingConnection(); if (!socket) { qWarning() << "Unable to accept incoming connection:" << server.errorString(); return 1; } qDebug() << "Client connected!"; socket->waitForReadyRead(); qDebug() << "Message received:" << socket->readAll(); return 0; } ``` client.cpp: ```cpp #include <QtNetwork/QLocalSocket> #include <QtCore/QDebug> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QLocalSocket socket; socket.connectToServer("test"); if (!socket.waitForConnected()) { qWarning() << "Unable to connect to the server:" << socket.errorString(); return 1; } qDebug() << "Connected to server!"; socket.write("Hello, world!"); socket.flush(); return 0; } ``` 在这个例子中,服务器监听本地套接字“test”,并等待客户端连接。客户端连接到服务器并发送一条消息。服务器等待读取消息并将其显示在控制台上。 请注意,这只是一个简单的例子,并且没有进行错误处理或其他的安全措施。在实际的应用程序中,您需要考虑这些因素,并采取适当的措施来确保通信的安全性和正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值