消息队列 是进程间通信的一种方式,它不像管道那样是基于字节流,而是基于消息。

也就是说,消息队列不一定是先进先出了。

 

这次我用消息队列实现一个简单的进程间通信程序,让两个进程server和client进行通信

 

(由于要准备学校的期末考试,先贴代码和运行结果,原理分析之后补上)

 

程序结构:

 

wKiom1d6F1DBGYKnAAAPqqnWRQQ421.png

 

Makefile:

wKiom1d6F4GRwWHiAAA9rNThcoE289.png

 

comm.h & comm.c:

wKiom1d6GEaCIU2OAAFY_nBLIIg365.png

msg_server.h & msg_client.h:

wKioL1d6GLqTxTPjAAA_tHcUUpQ918.png

msg_server.c:

 

wKioL1d6GRWy6amCAAG17fKk9ww597.png

wKiom1d6GRuxpoumAADywvBWgxM929.png

msg_client.c

wKiom1d6GTPDs-daAAG7F3rMErM110.png

wKioL1d6GTaTKGB8AADYOFZoWQU228.png

 

 

 

运行结果:

 

先启动服务器:

(错误13,没有权限,所以开root模式)

wKiom1d6GZnTUWYiAAA5VDFvhwE718.png

 

再启动客户端:

(再开启一个终端,貌似还是需要root模式)

 

 

wKioL1d6GkGjxyI1AAAgHLh9fO4742.png

 

wKiom1d6Gq2QVI9aAAAs5xVHTy8893.png