開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
Introducing Python(Bill Lubanovic (著)、O'Reilly Media)のChapter 11(Concurrency and Networks)、Things to Do 11.3.を解いてみる。
Things to Do 11.3.
コード
server
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import datetime
from xmlrpc.server import SimpleXMLRPCServer
def get_current_time():
return 'Current time: {0}'.format(datetime.datetime.utcnow().isoformat())
host = 'localhost'
port = 6789
address = (host, port)
server = SimpleXMLRPCServer(address)
server.register_function(get_current_time, 'get_current_time')
server.serve_forever()
client
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import xmlrpc.client
host = 'localhost'
port = 6789
proxy = xmlrpc.client.ServerProxy('http://{0}:{1}/'.format(host, port))
result = proxy.get_current_time()
print(result)
入出力結果(Terminal, IPython)
server
$ ./sample3_server.py
127.0.0.1 - - [21/Jan/2017 16:28:30] "POST / HTTP/1.1" 200 -
^CTraceback (most recent call last):
File "./sample3_server.py", line 17, in <module>
server.serve_forever()
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socketserver.py", line 236, in serve_forever
ready = selector.select(poll_interval)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/selectors.py", line 323, in select
r, w, _ = self._select(self._readers, self._writers, [], timeout)
KeyboardInterrupt
$
client
$ ./sample3_client.py Current time: 2017-01-21T07:28:30.603539 $
0 コメント:
コメントを投稿