Skip to content

Instantly share code, notes, and snippets.

@hagino3000
Created March 5, 2014 01:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hagino3000/9359264 to your computer and use it in GitHub Desktop.
Save hagino3000/9359264 to your computer and use it in GitHub Desktop.
ZeroMQ PUSH-PULL Connection test
# -*- coding: utf-8 -*-
import time
import threading
import zmq
def server():
print('Start server')
context = zmq.Context()
receiver = context.socket(zmq.PULL)
receiver.bind("tcp://*:5555")
while True:
ret = receiver.recv()
print("Received: %s" % ret)
if ret == "KILL":
break
TIMEOUT = 2000
def client():
context = zmq.Context()
context.setsockopt(zmq.LINGER, TIMEOUT)
sender = context.socket(zmq.PUSH)
sender.connect("tcp://localhost:5555")
try:
count = 1
while count < 100:
message = "Hello:" + str(count)
sender.send(message)
print("Send %i" % count)
count += 1
finally:
print("Finally")
sender.send(b"KILL")
print("Try to close client")
start_time = time.time()
sender.close()
context.term()
print("Close Done")
end_time = time.time()
print("%f" % (end_time - start_time))
if ((end_time - start_time) > TIMEOUT/1000.0):
print("WARNING!!!")
def main():
client_thread = threading.Thread(target=client)
client_thread.start()
time.sleep(1.00)
server_thread = threading.Thread(target=server)
server_thread.start()
client_thread.join()
server_thread.join()
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment