本文整理汇总了Python中xmlrpc.server.SimpleXMLRPCServer.serve_forever方法的典型用法代码示例。如果您正苦于以下问题:Python SimpleXMLRPCServer.serve_forever方法的具体用法?Python SimpleXMLRPCServer.serve_forever怎么用?Python SimpleXMLRPCServer.serve_forever使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xmlrpc.server.SimpleXMLRPCServer
的用法示例。
在下文中一共展示了SimpleXMLRPCServer.serve_forever方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
class Server:
def __init__(self, address):
self._rpc_methods_ = ['get', 'put', 'put_back', 'tick', 'keys']
self._data = {}
self._serv = SimpleXMLRPCServer(address, allow_none=True)
for name in self._rpc_methods_:
self._serv.register_function(getattr(self, name))
def get(self, key):
return self._data[key]
def put(self, key, value):
self._data[key] = value
def put_back(self, key, value):
pass
def tick(self):
pass
def keys(self):
return list(self._data)
def serve_forever(self):
self._serv.serve_forever()
示例2: start_server
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def start_server(obj):
"""
Purpose:
Start the XML-RPC server and register the "obj" class.
"""
try:
commandServer = SimpleXMLRPCServer(('', 9000), allow_none=True)
commandServer.register_introspection_functions()
commandServer.register_instance(obj)
print("{} - Starting to server forever".format(time.asctime()))
#Now keep the server alive till killed or system reboots
commandServer.serve_forever()
except KeyboardInterrupt as err:
print("{} - Keyboard Interrupt. Exiting.".format(time.asctime()))
return
except Exception as err:
print(err)
raise err
except System.Exception as err:
print(err)
raise err
示例3: NetServer
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
class NetServer(Thread):
def __init__(self, port=8080, logRequests=True):
Thread.__init__(self)
self.__port = port
self.__logRequests = logRequests
self.__server = None
self.__running = False
self.State = None
self.start()
while not self.__running:
sleep(0)
def stop(self):
if self.State is not None:
self.State.set_update_period(0)
self.__server.shutdown()
self.__server.server_close()
self.join()
def run(self):
#register API
self.State = NetServerState() # accessor for state object for tests and shutting down, etc
self.__server = SimpleXMLRPCServer(("127.0.0.1", self.__port), CrossDomainXMLRPCRequestHandler, logRequests=self.__logRequests)
self.__server.register_instance(self.State)
self.__server.register_introspection_functions()
#start server
self.__running = True
self.__server.serve_forever()
示例4: _start
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def _start(self):
"""
Used internally to start the XML-RPC server.
"""
s = SimpleXMLRPCServer(("", getPort(self.url)), logRequests=False)
s.register_instance(self)
s.serve_forever()
示例5: SchedServer
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
class SchedServer(object):
def __init__(self, ip="localhost", port=8000):
self.sched = scheduler.Scheduler()
self.server = SimpleXMLRPCServer((ip, port), requestHandler=RequestHandler)
self.server.register_introspection_functions()
self.serving = 0
self.server.register_function(self.push)
self.server.register_function(self.shutdown)
self.sched.run()
self.server.serve_forever()
def push(self, username, policy_number, code):
user_id = db_session.query(User.id).filter(User.username == username).one()[0]
db_task = Task(user_id, policy_number)
t = task.Task(program.Program(code), username, 3, 1000)
index = self.sched.add(t)
if index == -1:
print("Shutting down")
return -1
db_session.add(db_task)
db_session.commit()
ret_val = self.sched.get(index)
while ret_val is None:
ret_val = self.sched.get(index)
sleep(0.2)
return ret_val
def shutdown(self):
self.sched.join()
示例6: __init__
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
class KeyValueServer:
_rpc_methods_ = ['get', 'set', 'delete', 'exists', 'keys']
def __init__(self, address):
self._data = {}
self._serv = SimpleXMLRPCServer(address, allow_none=True)
for name in self._rpc_methods_:
self._serv.register_function(getattr(self, name))
def get(self, name):
return self._data[name]
def set(self, name, value):
self._data[name] = value
def delete(self, name):
del self._data[name]
def exists(self, name):
return name in self._data
def keys(self):
return list(self._data)
def serve_forever(self):
self._serv.serve_forever()
示例7: server_main
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def server_main():
global spv
logging_level = pyspv.WARNING
if '-v' in sys.argv:
logging_level = pyspv.INFO
if '-vv' in sys.argv or '-vvv' in sys.argv:
logging_level = pyspv.DEBUG
spv = pyspv.pyspv('pyspv-simple-wallet', logging_level=logging_level, peer_goal=4, testnet=True, listen=('0.0.0.0', 8336))
#relay_tx=False,
rpc_server = SimpleXMLRPCServer((RPC_LISTEN_ADDRESS, RPC_LISTEN_PORT), allow_none=True)
rpc_server.register_function(getnewaddress)
rpc_server.register_function(getnewstealthaddress)
rpc_server.register_function(getnewpubkey)
rpc_server.register_function(getbalance)
rpc_server.register_function(sendtoaddress)
rpc_server.register_function(sendspendtoaddress)
rpc_server.register_function(getinfo)
rpc_server.register_function(listspends)
rpc_server.register_function(dumppubkey)
rpc_server.register_function(dumpprivkey)
rpc_server.register_function(genmultisig)
rpc_server.register_function(sendrawtransaction)
try:
rpc_server.serve_forever()
except KeyboardInterrupt:
pass
spv.shutdown() # Async shutdown
spv.join() # Wait for shutdown to complete
示例8: main
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def main():
# Parse CLI options
import argparse
cli_parser = argparse.ArgumentParser(
description="XML-RPC server for filtering recommendations."
)
# Add verbosity option
cli_parser.add_argument('-v', '--verbose', action='store_true',
help='Be more verbose')
args = cli_parser.parse_args()
if args.verbose:
logging.basicConfig(level=logging.INFO)
filterServer = RecFilter()
server = SimpleXMLRPCServer(
(config.filter_server_hostname, config.filter_server_hostport),
allow_none=True)
server.register_introspection_functions()
server.register_function(filterServer.getRecs, 'getrecs')
print("Filter-server is running...")
# Run the server's main loop
server.serve_forever()
示例9: __init__
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
class KeyValueServer:
_rpc_methods = ["get", "set", "exists", "delete", "keys"]
def __init__(self, address):
self._data = {}
self._serv = SimpleXMLRPCServer(address, allow_none=True)
for method in self._rpc_methods:
self._serv.register_function(getattr(self, method), method)
def get(self, name):
return self._data["name"]
def set(self, name, value):
self._data["name"] = value
def exists(self, name):
return name in self._data
def delete(self, name):
del self._data["name"]
def keys(self):
# dict_keys is not supported
return list(self._data.keys())
def serve_forever(self):
self._serv.serve_forever()
示例10: rpcserver
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def rpcserver():
server = SimpleXMLRPCServer(('localhost', 8000), requestHandler=TestRequestHandler)
server.register_introspection_functions()
server.register_function(pow)
server.register_function(adder_func, 'add')
server.register_instance(TestRPCClass())
server.serve_forever()
示例11: run_xmlrpc_server
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def run_xmlrpc_server():
port = 1210
oo_proxy = OOProxy()
#server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", port))
server = SimpleXMLRPCServer(("localhost", port))
server.register_instance(oo_proxy)
#Go into the main listener loop
server.serve_forever()
示例12: main
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def main():
server = SimpleXMLRPCServer(("localhost", PORT))
print("We've got a connection and are listening on port {}...huzzah".format(PORT))
# 注册函数,这样它可以被即将创建的客户端代码使用
server.register_function(square, "square")
# 启动服务器
server.serve_forever()
示例13: buildServer
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def buildServer():
"""build an XMLRPC Server and serve forever \
waiting for problem to submit.
"""
global config
server = SimpleXMLRPCServer((config.get("XMLRPCServer","host"), \
config.getint("XMLRPCServer","port")))
server.register_function(receive, "send")
server.serve_forever()
示例14: main
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def main():
server = SimpleXMLRPCServer(('127.0.0.1', 7001))
server.register_introspection_functions()
server.register_multicall_functions()
server.register_function(addtogether)
server.register_function(quadratic)
server.register_function(remote_repr)
print("Server ready")
server.serve_forever()
示例15: start
# 需要导入模块: from xmlrpc.server import SimpleXMLRPCServer [as 别名]
# 或者: from xmlrpc.server.SimpleXMLRPCServer import serve_forever [as 别名]
def start():
#NOTE: bots directory should always be on PYTHONPATH - otherwise it will not start.
#***command line arguments**************************
usage = '''
This is "%(name)s" version %(version)s, part of Bots open source edi translator (http://bots.sourceforge.net).
Server program that ensures only a single bots-engine runs at any time, and no engine run requests are
lost/discarded. Each request goes to a queue and is run in sequence when the previous run completes.
Use of the job queue is optional and must be configured in bots.ini (jobqueue section, enabled = True).
Usage:
%(name)s -c<directory>
Options:
-c<directory> directory for configuration files (default: config).
''' % {'name': os.path.basename(sys.argv[0]), 'version': 3.3}
configdir = 'config'
for arg in sys.argv[1:]:
if arg.startswith('-c'):
configdir = arg[2:]
if not configdir:
print('Error: configuration directory indicated, but no directory name.')
sys.exit(1)
else:
print(usage)
sys.exit(0)
#***end handling command line arguments**************************
#~ botsinit.generalinit(configdir) #find locating of bots, configfiles, init paths etc.
#~ if not botsglobal.ini.getboolean('jobqueue','enabled',False):
#~ print('Error: bots jobqueue cannot start; not enabled in %s/bots.ini'%(configdir))
#~ sys.exit(1)
nr_threads = 2 # botsglobal.ini.getint('jobqueue','nr_threads')
process_name = 'jobqueue'
#~ logger = botsinit.initserverlogging(process_name)
#~ logger.log(25,'Bots %(process_name)s started.',{'process_name':process_name})
#~ logger.log(25,'Bots %(process_name)s configdir: "%(configdir)s".',{'process_name':process_name,'configdir':botsglobal.ini.get('directories','config')})
port = 28082 # botsglobal.ini.getint('jobqueue','port',28082)
#~ logger.log(25,'Bots %(process_name)s listens for xmlrpc at port: "%(port)s".',{'process_name':process_name,'port':port})
#start launcher thread
lauchfrequency = 5 # botsglobal.ini.getint('jobqueue','lauchfrequency',5)
maxruntime = 60 # botsglobal.ini.getint('settings','maxruntime',60)
for thread in range(nr_threads)
launcher_thread = threading.Thread(name='launcher', target=launcher,
args=(logger, queue, lauchfrequency, maxruntime))
launcher_thread.start()
#~ logger.info('Jobqueue launcher started.')
#the main thread is the xmlrpc server: all adding, getting etc for jobqueue is done via xmlrpc.
#~ logger.info('Jobqueue server started.')
server = SimpleXMLRPCServer(('localhost', port), logRequests=False)
server.register_instance(Jobqueue(logger))
try:
server.serve_forever()
except KeyboardInterrupt:
pass
sys.exit(0)