- 博客(9)
- 资源 (17)
- 收藏
- 关注
转载 Qt 剪贴板操作
QClipboard *board = QApplication::clipboard();//使用 QApplication::clipboard() 函数获得系统剪贴板对象。这个函数的返回值是 QClipboard 指针。board->setText("Text from Qt Application"); //通过 setText(),setImage() 或者 setPixmap() 函数可以将数据放置到剪贴板内,也就是通常所说的剪贴或者复制的操作; QString str = board->t
2016-07-28 16:50:16 8355
原创 进程间通信——Socket
共享内存、管道、信号量、消息队列,他们都是多个进程在一台主机之间的通信,那两个相隔几千里的进程能够进行通信吗?答是必须的,这个时候 Socket 这家伙就派上用场了,例如我们平时通过浏览器发起一个 http 请求,然后服务器给你返回对应的数据,这种就是采用 Socket 的通信方式了。socket编程即网络编程,有着悠久的历史,因此有一个非常固定的编程套路。
2016-07-14 20:19:24 2060
原创 进程间通信——信号量
共享内存最大的问题是什么?没错,就是多进程竞争内存的问题,就像类似于我们平时说的线程安全问题。如何解决这个问题?这个时候我们的信号量就上场了。信号量的本质就是一个计数器,用来实现进程之间的互斥与同步。例如信号量的初始值是 1,然后 a 进程来访问内存1的时候,我们就把信号量的值设为 0,然后进程b 也要来访问内存1的时候,看到信号量的值为 0 就知道已经有进程在访问内存1了,这个时候进程 b 就会访问不了内存1。所以说,信号量也是进程之间的一种通信方式。
2016-07-11 13:43:06 493
原创 进程间通信——共享内存
消息队列通信方式有缺点吗?答是有的,如果 a 进程发送的数据占的内存比较大,并且两个进程之间的通信特别频繁的话,消息队列模型就不大适合了。因为 a 发送的数据很大的话,意味发送消息(拷贝)这个过程需要花很多时间来读内存。哪有没有什么解决方案呢?答是有的,共享内存共享内存这个通信方式就可以很好着解决拷贝所消耗的时间了。这个可能有人会问了,每个进程不是有自己的独立内存吗?两个进程怎么就可以共享一块内存了?我们都知道,系统加载一个进程的时候,分配给进程的内存并不是实际物理内存,而是虚拟内存空间。
2016-07-11 13:40:17 2741 1
原创 进程间通信——消息队列
我们知道进程间通信采用管道时,a 进程给 b 进程传输数据,只能等待 b 进程取了数据之后 a 进程才能返回。所以管道不适合频繁通信的进程。那我们能不能把进程的数据放在某个内存之后就马上让进程返回呢?无需等待其他进程来取就返回呢?答是可以的,我们可以用消息队列的通信模式来解决这个问题,例如 a 进程要给 b 进程发送消息,只需要把消息放在对应的消息队列里就行了,b 进程需要的时候再去对应的消息队列里取出来。同理,b 进程要个 a 进程发送消息也是一样。这种通信方式也类似于缓存吧。
2016-07-11 11:50:39 641
原创 进程间通信——有名管道
上一篇我们学习了无名管道,它的通信方式是单向的,只能把第一个命令的输出作为第二个命令的输入,如果进程之间想要互相通信的话,那么需要创建两个管道。居然有匿名管道,那也意味着有命名管道,下面我们来创建一个命名管道。mkfifo test这条命令创建了一个名字为 test 的命名管道。接下来我们用一个进程向这个管道里面写数据,然后有另外一个进程把里面的数据读出来。echo "this is a pipe" > test // 写数据这个时候管道的内容没有被读出的话,那么这个命令就会一直停在这
2016-07-11 11:40:57 426
原创 进程间通信——管道
我们都知道进程间通信有多种方式,(1.pipe管道,2.mkfifo有名管道,3.消息队列,4.共享内存,5.信号量,6.Socket)那么它们之间的有什么优缺点或者适用于哪种场景呢,本篇开始逐篇学习它们的实现方法。首先我们先来学习管道,看一条linux的语句。netstat -tulnp | grep 8080学过 Linux 命名的估计都懂这条语句的含义,其中”|“是管道的意思,它的作用就是把前一条命令的输出作为后一条命令的输入。在这里就是把 netstat -tulnp 的输出结果作为
2016-07-10 19:41:36 343
转载 Linux网络编程头文件
http://www.w2bc.com/article/118302sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函
2016-07-09 19:35:42 791
转载 Qt Style Sheet实践(三):QCheckBox和QRadioButton
http://blog.csdn.net/itjobtxq/article/details/9629881
2016-07-01 20:29:44 3147
computer-vision计算机视图算法opencv相关
2024-03-03
QTreeView+自定义Model实现示例
2022-07-01
C++ Qt设计模式第2版(中英文版)+源码
2015-09-02
VC++ 6.0数据库系统开发实例导航源码
2011-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人