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

 

效果如图:

Python中的XMLRPC(Calendar)

 

你可能感兴趣的:(calendar)