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

2025-05-29 0 109

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59
<?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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP的消息通信机制测试实例 https://www.kuaiidc.com/96317.html

相关文章

发表评论
暂无评论