• 4190阅读
  • 1回复

[提问]Qt  Tcp 编程 [复制链接]

上一主题 下一主题
离线sambrown
 
只看楼主 倒序阅读 楼主  发表于: 2013-04-25
初学Qt Tcp 编程, 想写一个C/S 小程序


请问一下客户端是不是必须先发送数据才能 让服务端去响应?
tcpSocket.connectHost()算是发送数据吗?   如果不是,是不是必须发送 QDataStream  或 QTextStream  才算发送数据?  



离线ppdayz

只看该作者 1楼 发表于: 2013-04-26
回 楼主(sambrown) 的帖子
我这里有个完整的c/s项目,可能大了一点,但是用到的东西很全,是一个多线程的c/s项目, 你可以去看看
QTcpThreadPoolServiceTest.rar (2676 K) 下载次数:26

教程说明见 http://www.linuxidc.com/Linux/2012-10/71629.htm


QT 的 信号、槽原生支持跨线程传递,其 QByteArray与C++11的shard_ptr均可用于跨线程数据块的生命周期管理。

试验中,设计了一个设置为CPU核心数的线程池,这个线程池可以异步接受N个数据生产者传入的数据,均衡的分配处理任务,处理后的数据返回给某1个或者几个消费者。有两种均衡方法。

一种是生产者粒度的均衡。同一个生产者的各批数据FIFO顺序不被打破,这需要判断,当处理线程队列中还有该生产者的数据时,不改变当前处理线程。

第二种是数据粒度的并行,某个生产者传来的数据被分配到不同的线程,不保证后到的数据后被处理(也可能先到的处理的慢,后到的快)。

说明在我的Blog内,本程序在 Win VC2010+QT 4.8.0 +IDE 嵌入式环境下编译通过,在Ubuntu 12.04 + Qt 4.8.1 下编译通过。编译方法:

首先,qmake, 而后 make 或者 nmake ,当然,也可在IDE下编译。
快速回复
限100 字节
 
上一个 下一个