Python中的XMLRPC(Calendar)

XMLRPC服务器端代码,定义了三个方法名,getMonth获取所给月份的日历,getYear获取一年的日历,getDict测试返回字典的效果。

xmlrpc_server.py:

#!/usr/bin/python
# coding: utf-8

import calendar, SimpleXMLRPCServer, time, string, os

#创建 Server 对象
class Calendar:
    def getMonth(self, year, month):
      if(type(year) is type("")):
          if(year.isdigit()):
              year=string.atoi(year)
          else:
              return "error,the argv must be number"
      if(type(month) is type("")):
          if(month.isdigit()):
               month=string.atoi(month)
          else:
              return "error,the argv must be number"
      return calendar.month(year,month)

    def getYear(self, year):
      if(type(year) is type("")):
          if(year.isdigit()):
              year=string.atoi(year)
          else:
              return "error,the argv must be number"
        return calendar.calendar(year)

    def getDict(self):
      dict={'1':'1','2':'2','3':'3'}
      return dict

#创建实例
calendar_object = Calendar()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888))
server.register_instance(calendar_object)

#输出信息,等待链接
print "Listening on port 8888"
server.serve_forever()

 

客户端:xmlrpc_client.py:

#!/usr/bin/python
#  coding: utf-8 

import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost:8888")
month = server.getMonth (2014,8)
print month

year = server.getYear(2888)
print year

dict = server.getDict()
print dict

for keys in dict.keys():
        print "key=%s,value=%s"%(keys,dict[keys])

 

执行:

chmod u+x xmlrpc_server.py
./xmlrpc_server.py

新的终端:
chmod u+x xmlrpc_client.py ./xmlrpc_client.py

 

效果如图:

 

posted @ 2014-08-11 11:23  紫清婷  阅读(925)  评论(0编辑  收藏  举报