前几天在计算机操作系统课中学习了Linux下进程通信,今日做了个消息队列通信的简单小程序,权当练习。
程序有服务器和客户端两个进程。先运行服务器,然后客户端。客户端向服务器发送问题,服务器收到后可进行回复。
服务器运行时先判断要创建的消息队列是否存在,若已经存在,则退出。不存在,进入循环。(此为关键。若队列存在仍继续操作,则将二者都收不到消息。(不知为何哈!求高人解释。最早就是再此出耽误了很多时间,还以为是自己程序的毛病呢。))
msgrcv最后个参数设置为0,意思为若当前队列中无消息,则阻塞。等待消息进入队列后接受(即等待客户端启动发送消息) 。然后客户端,服务器无限循环进行问答。若想退出,按ctrl+c。
用到的主要函数:msgget() 创建消息队列 msgrcv()接受消息 msgsnd()发送消息 msgctl()操纵一个消息 fgets()键盘接受字符串,放入message.buffer。详细内容可使用man msgget ....等命令查找。
程序源码如下:
serve.c:
client.c:
运行结果如下:
分享到:
相关推荐
Linux进程间通信之消息队列.适用于任意两个进程间,本程序为基本模型,实现了消息队列.
Linux进程间通信-消息队列实例.pdf 学习资料 复习资料 教学资源
linux消息队列linux消息队列linux消息队列linux消息队列linux消息队列进程间通信进程间通信
linux c 进程间通信 消息队列 代码 亲测可用
Linux系统编程——进程间通信:消息队列,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46331643
linux进程间通信消息队列信号量共享内存等.pptx
Linux进程间的通信实现方式,比如管道、消息队列等
非常齐全的消息队列应用实例,每个工程都经过调试并且通过
linux进程间通信消息队列、信号量、共享内存等.ppt
使用linux消息队列实现进程间双向通信。本接口将消息接收封装在一个独立线程中,方便使用。
linux 进程间通信相关教程,管道 共享内存 共享队列 信号量 socket 锁 方面的讲解,值得下载
linux c 多进程间的实例,通信使用共享内存和消息队列
消息队列在Linux线程或进程间通信中的应用.pdf
linux进程间通信详解,包括管道及有名管道,消息队列,共享内存等
Linux进程间通信(fifo/pipe/mmap)后续将会完成进程间通信(消息队列/信号) 请关注
利用消息队列基本函数,实现Linux系统下进程A和进程B之间的消息收发。 msgsend输入‘end’,退出程序
主要介绍了Linux消息队列实现进程间通信实例详解的相关资料,需要的朋友可以参考下
资源中包含了Linux进程间通信的例子,同时有源文件和可执行文件。 源码主要包含了Linux下IPC机制的本地进程通信方式,包含了IPC共享内存,IPC信号量,IPC消息队列的实现,以及Linux下判断进程退出原因的示例程序。
IPC(InterProcess Communication)是各种进程通信方式的...前五种IPC只能用于一台主机内的进程间通信,套接口既可以用于一台主机内的进程间通信,也可以用于多台主机间的进程间通信。关于套接口将在网络编程中介绍。
IBM Linux进程间通信介绍如消息队列、信号灯、共享内存等,都是基于Sys V