【linux + lighttpd + php + zeromq】之实战训练一

微笑三、实践

    1.helloworld(码农的无敌测试程序)
           测试环境说明:
             1) 客户端:ZeroMQ for PHP
             2) 服务端:ZeroMQ for C
           客户端代码:zmq-client.php
                 版权说明:此代码是ZMQ官网测试代码,可能做了一点修改;
                 运行说明:此处默认您已经为php安装了zmq插件,详细情况请参考上一篇博客《环境搭建》;
<?php
/*
*  zmq-client.php
*
*  Hello World client
*  Connects REQ socket to tcp://localhost:5555
*  Sends "XXX" to C server, expects "YYY" back
* @author Ian Barber <ian(dot)barber(at)gmail(dot)com>
*/

$context = new ZMQContext();

//  Socket to talk to server
echo "<br>Connecting to hello world server…\n";
$requester = new ZMQSocket($context, ZMQ::SOCKET_REQ);
$requester->connect("tcp://localhost:5555");

for ($request_nbr = 0; $request_nbr != 10; $request_nbr++) {
    printf ("<br>Sending request %d…\n", $request_nbr);
    $requester->send("Hello from php client!");

    $reply = $requester->recv();
    printf ("<br>Received reply %d: [%s]\n", $request_nbr, $reply);
}

?>
        客户端代码:hello_world_server.c
           版权说明:此代码是ZMQ官网测试代码,可能做了一点修改;
           编译说明:需要链接czmq库,此处默认您已经安装了zmq库和czmq库;
// hello_world_server.c
// Hello World server

#include <zmq.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>

#define BUFFER_LEN 64

int main (void)
{
    //  Socket to talk to clients
    void *context = zmq_ctx_new ();
    void *responder = zmq_socket (context, ZMQ_REP);
    int rc = zmq_bind (responder, "tcp://*:5555");
    assert (rc == 0);

    while (1) {
        char buffer [BUFFER_LEN];
        zmq_recv (responder, buffer, BUFFER_LEN, 0);
        printf ("Received:[%s]\n", buffer);
        zmq_send (responder, "World from c server", strlen("World from c server"), 0);
        sleep (1);          //  Do some 'work'
    }
    return 0;
}

 
          
        测试结果(客户端):

 

            测试结果(服务端):

 
微笑helloworld示例到此演示完毕,下一篇博客将演示ZMQ的MDP模式:php-client、c-broker和c-server。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值