print("Client received %s" % reply)
Для простых сокетов вам нужно сначала запустить сервер. С помощью ZeroMQ
вы можете запустить первым как клиент, так и сервер:
$ python zmq_time_server.py
Server started at 2014-06-03 01:39:36.933532
$ python zmq_time_client.py
Client started at 2014-06-03 01:39:42.538245
Через 15 секунд вы должны увидеть сообщения от сервера:
Server sent 2014-06-03 01:39:47.539878
Server sent 2014-06-03 01:39:52.540659
Server sent 2014-06-03 01:39:57.541403
Эти строки вы должны увидеть в сообщении от клиента:
Client received b'2014-06-03 01:39:47.539878'
Client received b'2014-06-03 01:39:52.540659'
Client received b'2014-06-03 01:39:57.541403'
468
Приложение Д. Ответы к упражнениям
3. Попробуйте сделать то же самое с помощью XMLRPC.
Сервер xmlrpc_time_server.py:
from xmlrpc.server import SimpleXMLRPCServer
def now():
from datetime import datetime
data = str(datetime.utcnow())
print('Server sent', data)
return data
server = SimpleXMLRPCServer(("localhost", 6789))
server.register_function(now, "now")
server.serve_forever()
И клиент xmlrpc_time_client.py:
import xmlrpc.client
from time import sleep
proxy = xmlrpc.client.ServerProxy("http://localhost:6789/")
while True:
sleep(5)
data = proxy.now()
print('Client received', data)
Запустим сервер:
$ python xmlrpc_time_server.py
Запустим клиент:
$ python xmlrpc_time_client.py
Подождите примерно 15 секунд. Так выглядят первые три строки от сервера:
Server sent 2014-06-03 02:14:52.299122
127.0.0.1 -- [02/Jun/2014 21:14:52] "POST / HTTP/1.1" 200 -
Server sent 2014-06-03 02:14:57.304741
127.0.0.1 -- [02/Jun/2014 21:14:57] "POST / HTTP/1.1" 200 -
Server sent 2014-06-03 02:15:02.310377
127.0.0.1 -- [02/Jun/2014 21:15:02] "POST / HTTP/1.1" 200 -
А так — первые три строки от клиента:
Client received 2014-06-03 02:14:52.299122