почему Я не получаю распечатки с сервера, такие как «Полученный запрос» и «teeeest»?
Хорошо,
вы действительно получаете их,
, но , потому что вы не смотрите вправо (оба) место (s) (если читаете также из серверного PyCharm/ Окно терминала, вы увидите их - это хорошая новость ).
Добро пожаловать в распределенные вычисления .Имея две «роли», танцующие вместе (как закодировано в REQ/REP
или другом из архетипов масштабируемой формальной модели общения ZeroMQ), вы должны проверить обе стороны распределенного танца чтобы увидеть всю картину.
Наблюдение только одной стороны оставляет вас без полной истории.
Чтобы сделать это более легко видимым, давайте немного изменим код:
MOD SERVER:
import time
import zmq
context = zmq.Context()
socket = context.socket( zmq.REP ); socket.bind( "tcp://*:5555" )
while True:
message = socket.recv() # Wait for next request from client
print( "TERMINAL[1]: SERVER has received request: %s" % message )
time.sleep(1) # Do some 'work'
print( "TERMINAL[1]: SERVER puts teeest......................." )
socket.send( b"World" ) # Send reply back to client
MOD КЛИЕНТА:
import zmq
context = zmq.Context()
print( "TERMINAL[2] CLIENT says Connecting to hello world server…" )
socket = context.socket( zmq.REQ ) # Socket to talk to server
socket.connect( "tcp://localhost:5555" )
for request in range( 10 ): # Do 10 requests,
# # waiting each time for a response
print( "TERMINAL[2] CLIENT Sending request %s …" % request )
socket.send( b"Hello" )
message = socket.recv() # Get the reply.
print( "TERMINAL[2] CLIENT Received reply %s [ %s ]" % ( request, message ) )
И этот вывод вы уже «знаете»:
TERMINAL[2] CLIENT says Connecting to hello world server…
TERMINAL[2] CLIENT Sending request 0 …
TERMINAL[2] CLIENT Received reply 0 [ b'World' ]
TERMINAL[2] CLIENT Sending request 1 …
TERMINAL[2] CLIENT Received reply 1 [ b'World' ]
TERMINAL[2] CLIENT Sending request 2 …
TERMINAL[2] CLIENT Received reply 2 [ b'World' ]
TERMINAL[2] CLIENT Sending request 3 …
TERMINAL[2] CLIENT Received reply 3 [ b'World' ]
TERMINAL[2] CLIENT Sending request 4 …
TERMINAL[2] CLIENT Received reply 4 [ b'World' ]
TERMINAL[2] CLIENT Sending request 5 …
TERMINAL[2] CLIENT Received reply 5 [ b'World' ]
TERMINAL[2] CLIENT Sending request 6 …
TERMINAL[2] CLIENT Received reply 6 [ b'World' ]
TERMINAL[2] CLIENT Sending request 7 …
TERMINAL[2] CLIENT Received reply 7 [ b'World' ]
TERMINAL[2] CLIENT Sending request 8 …
TERMINAL[2] CLIENT Received reply 8 [ b'World' ]
TERMINAL[2] CLIENT Sending request 9 …
TERMINAL[2] CLIENT Received reply 9 [ b'World' ]
Итак,
затем просто посмотрите в другое окно / терминал,
, где вы увидите все намеченные стороны SERVER print()
-s:
TERMINAL[1]: SERVER has received request: b'Hello'
TERMINAL[1]: SERVER puts teeest.......................
TERMINAL[1]: SERVER has received request: b'Hello'
TERMINAL[1]: SERVER puts teeest.......................
TERMINAL[1]: SERVER has received request: b'Hello'
TERMINAL[1]: SERVER puts teeest.......................
TERMINAL[1]: SERVER has received request: b'Hello'
TERMINAL[1]: SERVER puts teeest.......................
TERMINAL[1]: SERVER has received request: b'Hello'
TERMINAL[1]: SERVER puts teeest.......................
TERMINAL[1]: SERVER has received request: b'Hello'
TERMINAL[1]: SERVER puts teeest.......................
...
Заинтересованы в том, чтобы как можно быстрее освоить ZeroMQ?
Может наслаждаться еще 5-секундным чтением
о главном понятииразличия в [иерархия ZeroMQ менее чем за пять секунд] или другие сообщения и обсуждения здесь.