• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

hproserpc使用实例(同时有Java和Delphi客户端的例子)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

php server

 

[php] view plain copy
 
  1. <?php  
  2.     require_once('src/Hprose.php');  
  3.     function hello($name) {  
  4.         echo "Hello $name!";  
  5.         return "Hello $name!";  
  6.     }  
  7.     function e() {  
  8.         throw new Exception("I am Exception");  
  9.     }  
  10.     function ee() {  
  11.         require("andot");  
  12.     }  
  13.     function asyncHello($name, $callback) {  
  14.         sleep(3);  
  15.         $callback("from server,Hello async $name!");  
  16.     }  
  17.     $server = new HproseHttpServer();  
  18.     $server->setErrorTypes(E_ALL);  
  19.     $server->setDebugEnabled();  
  20.     $server->addFunction('hello');  
  21.     $server->addFunctions(array('e', 'ee'));  
  22.     $server->addAsyncFunction('asyncHello');  
  23.     $server->addFilter(new HproseJSONRPCServiceFilter());  
  24.     $server->start();  


php client

 

 

[php] view plain copy
 
  1. <?php  
  2. require_once ('src/Hprose.php');  
  3. $test = new HproseHttpClient("http://localhost/hprose/http_server.php");  
  4. echo '<br/>';  
  5. // var_dump($test->invoke("hello", $args, 0, HproseResultMode::Serialized, 0));  
  6.   
  7. echo '<br/>';  
  8. // var_dump($test->invoke("hello", $args, 0, HproseResultMode::Raw, 0));  
  9.   
  10. echo '<br/>';  
  11. // var_dump($test->invoke("hello", $args, 0, HproseResultMode::RawWithEndTag, 0));  
  12.   
  13. echo $test->asyncHello("WORLD");  
  14. echo '<br/>';  
  15. $test->asyncHello("WORLD", function ($result)  
  16. {  
  17.     echo "from client result: ";  
  18.     var_dump($result);  
  19. });  
  20.   
  21. echo '<br/>';  
  22. /* 
  23. $test->dnslookup("www.baidu.com", function($result, $args) { 
  24.     echo "result: "; 
  25.     var_dump($result); 
  26.     echo "args: "; 
  27.     var_dump($args); 
  28. }); 
  29. */  
  30. ?>  


java client

 

 

[java] view plain copy
 
  1. package hprose.hello.client;  
  2.   
  3. import hprose.client.HproseHttpClient;  
  4. import java.io.IOException;  
  5.   
  6. public class HelloClient {  
  7.     public static void main(String[] args) throws IOException {  
  8.         HproseHttpClient client = new HproseHttpClient();  
  9.         client.useService("http://10.0.0.100:9090/hprose_demo/Hello");  
  10.         String result = (String) client.invoke("sayHello", new Object[] { "Hprose" });  
  11.         System.out.println(result);  
  12.         result = (String) client.invoke("sayHello", new Object[] { "中国" });  
  13.         System.out.println(result);  
  14.         System.out.println(client.invoke("add",new Object[]{115,316}));  
  15.     }  
  16. }  

 

[java] view plain copy
 
  1. package hprose.hello.client;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import hprose.client.HproseHttpClient;  
  6.   
  7. public class TestPHPClient {  
  8.   
  9.     public static void main(String[] args) throws Exception {  
  10.   
  11.         HproseHttpClient client = new HproseHttpClient();  
  12.         client.useService("http://10.0.0.105/hprose/http_server.php");  
  13.         String result = (String) client.invoke("hello",  
  14.                 new Object[] { "Hprose来自Java客户端" });  
  15.         System.out.println(result);  
  16.           
  17.         System.out.println(client.invoke("asyncHello",new Object[] { "Hprose来自Java客户端"}));  
  18.     }  
  19. }  


delphi client:

 

 

[delphi] view plain copy
 
  1. unit Unit4;  
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  7.   Dialogs, StdCtrls, HproseHttpClient, HproseClient;  
  8.   
  9. type  
  10.   TForm4 = class(TForm)  
  11.     Button1: TButton;  
  12.     HproseHttpClient1: THproseHttpClient;  
  13.     Button2: TButton;  
  14.     procedure Button1Click(Sender: TObject);  
  15.     procedure Button2Click(Sender: TObject);  
  16.   private  
  17.     { Private declarations }  
  18.   public  
  19.     { Public declarations }  
  20.   end;  
  21.   
  22. var  
  23.   Form4: TForm4;  
  24.   
  25. implementation  
  26.   
  27. {$R *.dfm}  
  28.   
  29. procedure TForm4.Button1Click(Sender: TObject);  
  30. begin  
  31.   HproseHttpClient1.UseService('http://10.0.0.100:9090/hprose_demo/Hello');  
  32.   ShowMessage(HproseHttpClient1.Invoke('sayHello', ['World中文']));  
  33.   ShowMessage(HproseHttpClient1.Invoke('add', [15,63]));  
  34. end;  
  35.   
  36. //https://raw.githubusercontent.com/andot/hprose/master/doc/1.3/docx/pascal.docx  
  37. procedure TForm4.Button2Click(Sender: TObject);  
  38. begin  
  39.     HproseHttpClient1.UseService('http://10.0.0.105/hprose/http_server.php');  
  40.   ShowMessage(HproseHttpClient1.Invoke('hello', ['World时间']));  
  41.   ShowMessage(HproseHttpClient1.Invoke('asyncHello', ['xxx']));  
  42. end;  
  43.   
  44. end.  


源码工程:http://pan.baidu.com/s/1o6vF1qE

http://blog.csdn.net/earbao/article/details/46501671


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在delphi的exe文件中嵌入另外一个exe文件发布时间:2022-07-18
下一篇:
DelphiTRzButtonEdit用法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap