Guest User

zmq failure behavior

a guest
May 30th, 2020
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.99 KB | None | 0 0
  1. ```
  2. import time
  3. import zmq
  4. from tqdm import trange
  5. import json
  6. ```
  7.  
  8. Server is REQ. Client is REP.
  9. ```
  10. # create two connecting clients
  11. context = zmq.Context()
  12. socket = context.socket(zmq.REP)
  13. socket.connect("tcp://localhost:5555")
  14.  
  15. count = 0
  16. while True:
  17.     message = socket.recv()
  18.     socket.send(b"")
  19.     count += 1
  20.     print(json.loads(message.decode())['n'])
  21.  
  22. print(count)
  23. ```
  24.  
  25. ```
  26. # create one binding server
  27. context = zmq.Context()
  28. socket = context.socket(zmq.REQ)
  29. socket.bind("tcp://*:5555")
  30.  
  31. for n in trange(100):
  32.     message = json.dumps({"n": n}).encode()
  33.     socket.send(message)
  34.     socket.recv()
  35.     time.sleep(1)
  36. ```
  37.  
  38. Output:
  39. ```
  40. $$ python responder.py
  41. 2
  42. 4
  43. 6
  44. 8
  45. 10
  46. 12
  47. <<< fall back full on this responder
  48. 14
  49. 15
  50. 16
  51. 17
  52. 18
  53. 19
  54.  
  55. $$ python responder.py
  56. 0
  57. 1
  58. 3
  59. 5
  60. 7
  61. 9
  62. 11
  63. 13
  64. ^CTraceback (most recent call last):
  65.   File "responder.py", line 17, in <module>
  66.     message = socket.recv()
  67.   File "zmq/backend/cython/socket.pyx", line 791, in zmq.backend.cython.socket.Socket.recv
  68.   File "zmq/backend/cython/socket.pyx", line 827, in zmq.backend.cython.socket.Socket.recv
  69.   File "zmq/backend/cython/socket.pyx", line 186, in zmq.backend.cython.socket._recv_copy
  70.   File "zmq/backend/cython/checkrc.pxd", line 13, in zmq.backend.cython.checkrc._check_rc
  71. KeyboardInterrupt
  72. ```
  73.  
  74. Server is REP. Client is REQ
  75.  
  76. ```
  77. # create two connecting clients
  78. context = zmq.Context()
  79. socket = context.socket(zmq.REP)
  80. socket.bind("tcp://*:5555")
  81.  
  82. count = 0
  83. while True:
  84.     message = socket.recv()
  85.     socket.send(b"")
  86.     count += 1
  87.     print(json.loads(message.decode())['n'])
  88.  
  89. print(count)
  90. ```
  91.  
  92. ```
  93. # create one binding server
  94. context = zmq.Context()
  95. socket = context.socket(zmq.REQ)
  96. socket.connect("tcp://localhost:5555")
  97. socket.connect("tcp://localhost2:5555")
  98.  
  99. for n in trange(100):
  100.     message = json.dumps({"n": n}).encode()
  101.     socket.send(message)
  102.     socket.recv()
  103.     time.sleep(1)
  104. ```
  105.  
  106.  
  107. Output:
  108. ```
  109. $$ python responder.py
  110. 0
  111. <<< stuck
  112. ```
Advertisement
Add Comment
Please, Sign In to add comment