Qt5 Demo Fortune例程各个实现区别(network)
来源:互联网 发布:交易师炒股软件下载 编辑:程序博客网 时间:2024/05/16 16:59
1.Fortune Server/Client Example
Server服务器调用tcpsocket的Listen()监听是否有来自客户端连接,
当Client客户端通过connectToHost()连接到Server后,Server端由QTcpSocket *clientConnection = tcpServer->nextPendingConnection()
创建基于该连接对象的套接字,通过write(block)向客户端发送数据。
优点:简洁明了,代码少
缺点:如果发送数据太频繁,太大,对于主线程的压力可想而知。实际工程中,数据通信多是放在单独的线程中使用。
2.Blocking Fortune Client
两个主类,一个是BlockingClient,继承自QDialog,负责窗体搭建,响应用户操作等,就是GUI主线程。
另一个FortuneThread类继承自QThread,QTcpSocket对象创建在FortuneThread的run函数中。用户需要接收数据的时候,通过BlockingClient
向FortuneThread发送一个请求,通过线程连接到主机,FortuneThread接收到来自主机的数据在通过信号槽返回给主线程。这种客户端使用阻塞模式
很常见。
BlockClient调用一个全局thread来操作,使用互斥锁(QMutex)来解决竞争。
3.Thread Fortune Server Example
对每个客户机的请求创建一个单独的线程来进行响应。我们不再需要互斥锁来保护资源。
Dialog类负责界面绘制,通过server.listen()开启FortuneServer监听事件,一旦有客户机连接上,server通过IncomingConnection()开启一个新的
线程FortuneThread,该线程负责将Fortune发送给客户端,之后销毁。
- Qt5 Demo Fortune例程各个实现区别(network)
- Qt5官方Demo解析集5(总结)——Fortune例程的各个实现区别
- Qt5官方Demo解析集1——Fortune Server/Client
- Qt5官方Demo解析集4——Blocking Fortune Client
- Qt5官方Demo解析集5——Threaded Fortune Server
- fortune random server demo
- FreeRTOS 队列例程Demo
- Contiki的一个demo例程
- 各个层面的android小例程
- java集合中各个接口与实现类的区别
- fortune client
- linux 下websocket server demo例程
- ioctl实现例程
- Qt5.3.2插件式开发入门例程--仅供参考
- sql2000各个版本区别
- Eclipse各个版本区别
- Eclipse各个版本区别
- MySQL各个版本区别
- boot.scr生成
- 常用正则表达式
- vs2008 vs2010 添加跳转到函数开头的快捷键
- PX4 cdc bootloader应用
- MYSQL数据库命名及设计规范
- Qt5 Demo Fortune例程各个实现区别(network)
- fastjson过滤字段属性
- spring jpa的学习链接
- hadoop权威指南第四章StreamCompressor程序的运行方法与问题总结
- ORACLE SQL优化事项
- Gesture(手势旋转图片,缩放图片,touch图片处理相关事件)
- 冰桶算法,优质资源稳守宝座
- poj1144--D - Network(连通分量,割点)
- Android开发Bitmap在Native层与Java层内存的两种生成方式