`
fanrey
  • 浏览: 254058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用ruby写xmlrpc的server和client

    博客分类:
  • ruby
 
阅读更多
#server.rb
#!/usr/bin/env ruby

require "xmlrpc/server"
s = XMLRPC::Server.new(8080)
s.add_handler("test") do |a,b|
  { "sum" => a + b, "difference" => a - b }
end
s.serve


#client.rb
#! /usr/bin/env ruby

require "xmlrpc/client"
server = XMLRPC::Client.new2("http://127.0.0.1:8080")
result = server.call("test", 5, 3)
sum = result["sum"]
difference = result["difference"]
puts "Sum: #{sum}, Difference: #{difference}"



如果把"127.0.0.1"改成"localhost",会报下面的错:
D:\Ruby193\practise>ruby xrpcclient.rb
D:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:141:in `read_nonblock': An existing co
nnection was forcibly closed by the remote host. (Errno::ECONNRESET)
        from D:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:141:in `rbuf_fill'
        from D:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
        from D:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
        from D:/Ruby193/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
        from D:/Ruby193/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
        from D:/Ruby193/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_r
equest'
        from D:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
        from D:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
        from D:/Ruby193/lib/ruby/1.9.1/net/http.rb:1293:in `request'
        from D:/Ruby193/lib/ruby/1.9.1/net/http.rb:1239:in `request_post'
        from D:/Ruby193/lib/ruby/1.9.1/xmlrpc/client.rb:538:in `do_rpc'
        from D:/Ruby193/lib/ruby/1.9.1/xmlrpc/client.rb:420:in `call2'
        from D:/Ruby193/lib/ruby/1.9.1/xmlrpc/client.rb:410:in `call'
        from xrpcclient.rb:5:in `<main>'
分享到:
评论

相关推荐

    xmlrpc-client-3.1.jar下载

    xmlrpc-client-3.1.jar下载

    XMLRPC jar包+教程+例子

    - 在Java中,常用的XMLRPC库有Apache的xmlrpc-client和xmlrpc-server,这两个库提供了客户端和服务端的API。 - `xmlrpc-client`负责构建请求并发送,`xmlrpc-server`用于接收请求并处理。 3. **XMLRPC jar包的...

    xmlrpc:Ruby标准库软件包“ xmlrpc”

    XMLRPC 概述 XMLRPC是一种轻量级协议,支持通过HTTP进行远程过程调用。 它在上定义。 XMLRPC允许您创建跨计算机语言的简单分布式计算解决方案。...server = XMLRPC :: Client . new2 ( "http://xmlrpc-c.sourcef

    xmlrpc-c-client-1.16.24-1206.1840.4.el5.x86_64.rpm

    linux gcc必备安装包之一,和xmlrpc-c-1.16.24-1206.1840.4.el5.x86_64.rpm一样,也是必须安装的。否则gcc是不能安装成功。

    xmlrpc实现php和后台c++的通信

    $xmlrpc_client = new xmlrpc_client("/RPC2", "server.example.com", 80); $xmlrpc_request = new xmlrpcmsg('yourMethod', array('param1', 'param2')); $response = $xmlrpc_client-&gt;send($xmlrpc_request); ``` ...

    基于python的xmlrpc示例

    2. Python的`xmlrpc.server`和`xmlrpc.client`模块:熟悉这两个模块提供的类和方法,如`SimpleXMLRPCServer`和`Proxy`,以及它们的用法。 3. Python的网络编程基础:理解如何设置服务器监听,以及客户端如何连接到...

    xmlrpc简单示例

    proxy = xmlrpc.client.ServerProxy("http://localhost:8000") print(proxy.add(1, 2)) # 输出:3 ``` 以上就是关于XMLRPC的基本介绍,包括其工作原理、优势和实际应用场景。通过理解XMLRPC,我们可以更有效地在...

    xmlrpc demo

    在Python中,可以使用`xmlrpc.client`模块的`ServerProxy`类来创建一个代理对象,通过这个代理对象可以像调用本地函数一样调用远程服务。例如,`proxy = xmlrpc.client.ServerProxy('http://localhost:8000')`,然后...

    xmlrpc 导入的Lib

    在Python的`xmlrpc`库中,主要有两个模块:`xmlrpc.client`和`xmlrpc.server`。`xmlrpc.client`模块提供了客户端功能,用于发起XMLRPC请求并处理响应;而`xmlrpc.server`模块则包含了服务器端的实现,可以创建XMLRPC...

    XMLRPC调用webservice

    在提供的文件中,`server.php`和`client.php`分别代表了XMLRPC调用中的服务端和客户端代码。服务端(server)需要定义可供调用的函数,并通过特定的XMLRPC服务器库暴露这些函数。客户端(client)则根据服务端提供的...

    em-xmlrpc-client:EventMachine +光纤感知XMLRPC客户端

    这个宝石猴子将Ruby内置的XMLRPC :: Client补丁为EventMachine + Fiber感知。 如果您未使用EventMachine(或React器未在运行),则它将回退到使用XMLRPC :: Client的默认实现(使用Net :: HTTP)。 示例 require ...

    xmlrpc3.1.3 jar包.

    xmlrpc jar包. 版本: 3.1.3

    PHP_XMLRPC_Project.rar

    在本项目"PHP XML-RPC Server & Client 範例"中,我们将深入探讨如何使用PHP实现XML-RPC服务器和客户端。 首先,让我们了解XML-RPC的基本原理。XML-RPC允许一个应用程序通过HTTP发送一个包含方法名和参数的XML消息...

    xmlrpc-2.0-src.zip_xmlrpc_xmlrpc java_xmlrpc s_xmlrpc-2.0.1.jar_

    标题中的"xmlrpc-2.0-src.zip_xmlrpc_xmlrpc_java_xmlrpc_s_xmlrpc-2.0.1.jar_"提及的是XMLRPC库的2.0版本源代码和一个编译好的JAR文件。`xmlrpc-2.0-src.zip`是源代码压缩包,包含了XMLRPC库的源代码,供开发者学习...

    xmlrpc-server.jar

    xmlrpc-server-3.1.jar下载

    apache xmlrpc-3.1.1-sources.zip

    2. **xmlrpc-server-3.1.1-sources.jar.zip**:这是XML-RPC服务器端实现,它包含了一系列用于创建和管理XML-RPC服务器的类和接口。开发者可以使用这些工具将Java方法暴露为XML-RPC服务,让其他客户端可以通过HTTP...

    用于java RPC编程的相关包xmlrpc-server-3.1.3.jar

    用于java RPC编程的相关包xmlrpc-server-3.1.3.jar

    linux 下 c++ 写的xmlrpc

    linux 下 c++ 写的xmlrpc ,示例很全面.

    xmlrpc-2.2.2

    XMLRPC(XML Remote Procedure Call)是一种基于XML的远程过程调用协议,它允许不同编程语言和操作系统之间的应用程序通过网络进行通信。PHP中的XMLRPC模块,如"xmlrpc-2.2.2",是实现这一协议的关键组件,使得PHP...

Global site tag (gtag.js) - Google Analytics