当前位置:   article > 正文

QT tcp server 多线程_qtcpserver多线程

qtcpserver多线程
QT 编写一个TCP 协议的Server端,支持多客户端连接,一个连接交由一个线程来处理。

需要用到 QTcpServer  QTcpSocket QThread

QTcpServer  最主要的一个incomingConnection函数说明

由定义就可以知道,当QTcpServer监听到一个可用的连接时,会有一个socket descriptor 。

也就是说服务端监听到一个连接,就会有一个唯一的描述标识,依据这个标识会创建一个QTcpSocket,


可以同客户端进行通信


进一步,一个socket descriptor对应一个线程,在线程里一句socket descriptor创建QTcpSocket。

设计:

1、自定义封装一个server类 继承QTcpServer ,重写void incomingConnection(int socketDescriptor);

2、自定义封装一个serverThread线程类继承QThread ,重写void run();

3、自定义封装一个MySocket类 继承QTcpSocket ,实现收发;

流程:

server ---> serverThread ---> MySocket三者的关联是 socketDescriptor;


server监听到新连接会进入incomingConnection(int socketDescriptor);创建serverThread ,connect();serverThread里创建MySocket实现send receive,然后emit 数据到serverThread;

将UI跟server绑定起来,既可以实现界面的显示及数据发送。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/187353
推荐阅读
相关标签
  

闽ICP备14008679号