note 81920 added to function.msg-receive
| From: | eimers at mehrkanal dot com | Date: | Wed, 19 Mar 2008 16:49:46 +0000 |
| Subject: | note 81920 added to function.msg-receive | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-137201@lists.php.net to get a copy of this message | ||
<?php error_reporting(E_ALL);
/**
* 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 ?typ=send and one time
with ?typ=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.
*/
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);
// Sendoptions
$message='nachricht'; // Transfering Data
$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);
// This one sends
if ($_GET['typ']=='send') {
if(msg_send($queue,$msgtype_send, $message,$serialize_needed, $block_send,$err)===true) {
echo "Message sendet.\n";
} else {
var_dump($err);
}
// This one received
} else {
$queue_status=msg_stat_queue($queue);
echo 'Messages in the queue: '.$queue_status['msg_qnum']."\n";
// WARNUNG: nur weil vor einer Zeile Code noch Nachrichten in der Queue waren, muss das jetzt
nciht mehr der Fall sein!
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);
}
}
}
}
?>
----
Server IP: 217.160.72.57
Probable Submitter: 80.252.101.178
----
Manual Page -- http://www.php.net/manual/en/function.msg-receive.php
Edit -- https://master.php.net/note/edit/81920
Del: integrated -- https://master.php.net/note/delete/81920/integrated
Del: useless -- https://master.php.net/note/delete/81920/useless
Del: bad code -- https://master.php.net/note/delete/81920/bad+code
Del: spam -- https://master.php.net/note/delete/81920/spam
Del: non-english -- https://master.php.net/note/delete/81920/non-english
Del: in docs -- https://master.php.net/note/delete/81920/in+docs
Del: other reasons-- https://master.php.net/note/delete/81920
Reject -- https://master.php.net/note/reject/81920
Search -- https://master.php.net/manage/user-notes.php