linux环境下安装PHP中间件ICE(二)

来源:互联网 发布:怎么用万捷网络验证 编辑:程序博客网 时间:2024/06/04 18:26

前面我们已经成功安装了ICE(详情请查看:http://blog.php230.com/linux-install-php-middleware-environment-ice-part1.html),这里我们来搭建ICE服务端和客户端的测试环境。

1、建立ice文件Printer.ice

module Demo{interface Printer{void printString(string s);};};

2、执行 slice2cpp Printer.ice 执行成功后可以看到当前目录下生成了 Printer.cpp 和 Printer.h 两个文件

3、新建Server.cpp

#include <Ice/Ice.h> #include <Printer.h>   using namespace std; using namespace Demo;   class PrinterI : public Printer { public: virtual void printString(const string& s, const Ice::Current&); };   void  PrinterI:: printString(const string& s, const Ice::Current&) { cout << s << endl; }   int main(int argc, char* argv[]) { int status = 0; Ice::CommunicatorPtr ic; try { ic = Ice::initialize(argc, argv); Ice::ObjectAdapterPtr adapter = ic->createObjectAdapterWithEndpoints( "SimplePrinterAdapter", "default -p 10000"); Ice::ObjectPtr object = new PrinterI; adapter->add(object, ic->stringToIdentity("SimplePrinter")); adapter->activate(); ic->waitForShutdown(); } catch (const Ice::Exception& e) { cerr << e << endl; status = 1; } catch (const char* msg) { cerr << msg << endl; status = 1; } if (ic) { try { ic->destroy(); } catch (const Ice::Exception& e) { cerr << e << endl; status = 1; } } return status; }

4、编译Server.cpp,执行:

g++ -I. -I/usr/include  -o server Printer.cpp Server.cpp  -L/usr/lib -lIce -lIceUtil

成功后会在同一目录中生成server可执行文件。

5、创建PHP客户端,执行命令:

slice2php Printer.ice

成功后,会在同一目录中生成Printer.php文件

6、创建Client.php

<?php require 'Ice.php'; require 'Printer.php';$ic = null; try { $ic = Ice_initialize(); $base = $ic->stringToProxy("SimplePrinter:default -p 10000"); $printer = Demo_PrinterPrxHelper::checkedCast($base); if(!$printer) throw new RuntimeException("Invalid proxy");$printer->printString("Hello World!"); } catch(Exception $ex) { echo $ex; }if($ic) { // Clean up try { $ic->destroy(); } catch(Exception $ex) { echo $ex; } } ?>

7、打开一终端执行:./server

8、打开另一终端执行:php Client.php

执行成功后,我们发现每执行一次php Client.php都会在服务终端输出 Hello World!


来源:http://blog.csdn.net/qq_16490557/article/details/37927807

原创粉丝点击