当前位置: 技术问答>linux和unix
linux C 语言 多线程读写消息队列
来源: 互联网 发布时间:2016-07-06
本文导语: 那位大侠可以帮忙编写一段这样的代码呢? 具体是,服务器发送消息,存放到消息队列中,然后开启多个进程从消息队列中读取数据,将第一条信息发送到2000的端口,第二条数据发送到3000的端口。本人对其通讯不是...
那位大侠可以帮忙编写一段这样的代码呢?
具体是,服务器发送消息,存放到消息队列中,然后开启多个进程从消息队列中读取数据,将第一条信息发送到2000的端口,第二条数据发送到3000的端口。本人对其通讯不是很了解,希望大侠帮忙。。。
具体是,服务器发送消息,存放到消息队列中,然后开启多个进程从消息队列中读取数据,将第一条信息发送到2000的端口,第二条数据发送到3000的端口。本人对其通讯不是很了解,希望大侠帮忙。。。
|
提示一下需要注意的地方:
1、消息队列长度多大,因为可能出现写的速度大于发的速度,导致消息队列满了的情况
2、消息队列里的内容由谁写入
3、读取消息队列中的消息发送给对端,是否需要对端确认收到消息?还是说发出去就好,不用管对端是否收到(这
种要简单些)。
4、发送端在读取并删除消息的过程中,需要加锁保护,因为程序是多线程。
5、发送端检测到消息队列为空的时候,能够自动挂起
这个实际上就是操作系统中 读者-写者问题的一个模拟。楼主可以随便找本 操作系统原理的书看下,就知道怎么
做了;然后找本基础的Socket编程的书,比如UNIX网络编程(第一卷),就知道怎么写代码了。
1、消息队列长度多大,因为可能出现写的速度大于发的速度,导致消息队列满了的情况
2、消息队列里的内容由谁写入
3、读取消息队列中的消息发送给对端,是否需要对端确认收到消息?还是说发出去就好,不用管对端是否收到(这
种要简单些)。
4、发送端在读取并删除消息的过程中,需要加锁保护,因为程序是多线程。
5、发送端检测到消息队列为空的时候,能够自动挂起
这个实际上就是操作系统中 读者-写者问题的一个模拟。楼主可以随便找本 操作系统原理的书看下,就知道怎么
做了;然后找本基础的Socket编程的书,比如UNIX网络编程(第一卷),就知道怎么写代码了。
|
看看Unix网络编程吧,熟悉下socket,消息队列的代码Unix高级编程里有.
|
学习
|
消息队列本来就是独立于进程的,为何无法模拟多进程从消息队列中读取数据?
|
幫頂 學習
|
帮顶
|
study