PHP的消息通信机制测试实例


Posted in PHP onNovember 10, 2016

本文实例讲述了PHP的消息通信机制。分享给大家供大家参考,具体如下:

<?php error_reporting(E_ALL&~E_WARNING&~E_NOTICE);
/**
 * Example for sending and receiving Messages via the System V Message Queue
 *
 * To try this script run it synchron/asynchron twice times. One time with ?type=send and one time with ?type=receive
 *
 * @author     Thomas Eimers - Mehrkanal GmbH
 *
 * This document is distributed in the hope that it will be useful, but without any warranty;
 * without even the implied warranty of merchantability or fitness for a particular purpose.
 */
ob_implicit_flush(1);
header('Content-Type: text/plain; charset=ISO-8859-1');
echo "Start...\n";
// Create System V Message Queue. Integer value is the number of the Queue
//$queue = msg_get_queue(100379);
$mesg_key = ftok(__FILE__, 'm');
$mesg_id = msg_get_queue($mesg_key, 0666);
$queue = $mesg_id;
// Sendoptions
$serialize_needed=false; // Must the transfer data be serialized ?
$block_send=false;    // Block if Message could not be send (Queue full...) (true/false)
$msgtype_send=1;     // Any Integer above 0. It signeds every Message. So you could handle multible message
             // type in one Queue.
// Receiveoptions
$msgtype_receive=1;    // Whiche type of Message we want to receive ? (Here, the type is the same as the type we send,
             // but if you set this to 0 you receive the next Message in the Queue with any type.
$maxsize=100;       // How long is the maximal data you like to receive.
$option_receive=MSG_IPC_NOWAIT; // If there are no messages of the wanted type in the Queue continue without wating.
             // If is set to NULL wait for a Message.
// Send or receive 20 Messages
for ($i=0;$i<20;$i++) {
   sleep(1);
  ob_flush();
  flush();
 $message='Hello, This is Flandy,now is '.date("H:i:s",time());   // Transfering Data
 // This one sends
  if (isset($_GET['type'])&&$_GET['type']=='send') {
  if(msg_send($queue,$msgtype_send, $message,$serialize_needed, $block_send,$err)===true) {
   echo "The ".$i." Message has been sent, the messge is ".$message."\n";
  } else {
   var_dump($err);
  }
 // This one received
 } else {
   $queue_status=msg_stat_queue($queue);
   echo 'Get Messages in the queue: '.$queue_status['msg_qnum']."\n";
   print_r($queue_status);
   echo "\n";
  if ($queue_status['msg_qnum']>0) {
   if (msg_receive($queue,$msgtype_receive ,$msgtype_erhalten,$maxsize,$daten,$serialize_needed, $option_receive, $err)===true) {
       echo "Received data:".$daten."\n";
   } else {
       var_dump($err);
   }
  }
 }
}
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(5)
Oct 09 PHP
基于mysql的论坛(7)
Oct 09 PHP
PHP 单引号与双引号的区别
Nov 24 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
curl和libcurl的区别简介
Jul 01 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
php简单复制文件的方法
May 09 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
php微信小程序解包过程实例详解
Mar 31 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 #PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 #PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 #PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 #PHP
PHP实现的曲线统计图表示例
Nov 10 #PHP
PHP  Yii清理缓存的实现方法
Nov 10 #PHP
PHP模拟http请求的方法详解
Nov 09 #PHP
You might like
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
19个Android常用工具类汇总
2014/12/30 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
js倒计时小程序
2013/11/05 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python列表切片常用操作实例解析
2020/03/10 Python
什么是Python包的循环导入
2020/09/08 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
幼儿园数学教学反思
2014/02/02 职场文书
秋天的图画教学反思
2014/05/01 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript