Python与Ruby的通信
最近一直研究SOAP,并且实现了Python与Ruby的互通,这里和大家分享一下~Python为服务器端
from ZSI import dispatch
def getWelcome(name):
return "welcome " + name
print "Starting server..."
dispatch.AsServer(port=9000)
Ruby为客户端
require 'soap/rpc/driver'
proxy = SOAP::RPC::Driver.new("http://localhost:9000",nil,'test')
proxy.add_method('getWelcome','name')
print proxy.getWelcome('interhui')
这个是已经实现的,可是Ruby做服务器,Python做客户端却没有完全实现。
Ruby为服务端
require 'soap/rpc/standaloneServer'
class StringServant
def getWelcome(name)
return "Welcome "+name
end
end
class Server < SOAP::RPC::StandaloneServer
def on_init
servant = StringServant.new
add_method(servant,'getWelcome','name')
end
end
if __FILE__ == $0
svr = Server.new('Server','','0.0.0.0',9000)
trap('INT') { svr.shutdown }
svr.start
end
Python为客户端
from ZSI.client import Binding
u = ''
n= 'Server'
b = Binding(url=u, ns=n, host='localhost', port=9000)
result = b.getWelcome('inter')
print result
也请各路高手给予指点 试过server和client同为Python或Ruby实现吗? Python的Server和Client,Ruby的Server和Client都能实现互通,现在就是Ruby做服务器,Python做客户端不能互通 这个问题,我也碰到过,不过我是用 ruby 做服务器,客户端是AIX 下的 C 程序, 可以收到,但是gets 阻塞在那里了,后来就用read 指定长度,才可以!
两边都是ruby 服务器是没有问题的!
你这个可以这样实试看! 不错啊! 用Web Service(soap)来实现啊! 感谢分享 不错不错:PP
页:
[1]