标签:
1.msgget (key_t ket,int flag) ; //创建一个新的消息队列或者访问一个已存在的消息队列
2.msgsnd(int msid, const void *ptr ,size_t length ,int flag ) // 发送
3.msgrcv() //读
4.msgctl(int msid , int cmd ,struct msqid_ds *buff )// cmd 提供删除,设置,返回当前
tips :
1.客户端服务端例子
服务端创建两个消息队列,A,B,客户端从A中读入消息, 从B写入消息 ,服务端相反
2.复用
1.用消息的类型做区分
2. 类型字段做优先级字段
使用:通过指定IPC_NOWAIT 标志,调用 msgrcv从消息队列中读出指定type的消息,如果没有直接返回
eg :1.服务器,各个客户端往一个消息队列中写入消息,只要type能够标志他们的身份
3 .消息队列上使用select ,poll等
system V消息队列本身不能使用select等,但是可以通过服务器创建管道,子进程阻塞在msgrcv中,msgscv返回将消息写入管道,父进程对管道select。缺点
是消息处理了三次。
4.消息队列的限制
msgmax,msgmnb,msgmni ,msgtql
标签:
原文地址:http://www.cnblogs.com/liulanghai/p/5440794.html