次のコードのように定義された単純なxmlrpcサーバーを作成しましょう。
from SimpleXMLRPCServer import SimpleXMLRPCServer
def add(x,y):
return x+y
server = SimpleXMLRPCServer(("localhost", 8000))
server.register_function(add, 'addthem')
server.register_function(add, 'add.numbers')
server.register_function(add, 'sum.two.numbers')
server.serve_forever()
経由で接続できます
import xmlrpclib
dev = xmlrpclib.ServerProxy("http://localhost:8000/RPC2")
オブジェクトを使用すると、サーバーdev
の(単純化のために同じ)関数にアクセスできません。add
print dev.addthem(1,2)
print dev.add.numbers(1,2)
print dev.sum.two.numbers(1,2)
私の質問:それらの呼び出しの断片は何ですか?(私はdev
のインスタンスだと思いますxmlrpclib.ServerProxy
)とは何ですかsum
、dev.sum
(関数?呼び出し可能?クラス?インスタンス?)には何がありますか?何two
がdev.sum.two
...
たとえば、次の構文
print dev.add
エラーが発生します
xmlrpclib.Fault: <Fault 1: '<type \'exceptions.Exception\'>:method "add.__str__" is not supported'>
それはいつも何かを印刷するべきではありませんか?と他の部分は 何ですか?dev.add