Source code for simba.Modules.id_number_server

import os, sys
import time
import zmq
import threading
import signal


[docs] class zmqServer(threading.Thread): _id = -1 def __init__(self, port=5557): super(zmqServer, self).__init__() self.event = threading.Event() self.context = zmq.Context() self.socket = self.context.socket(zmq.REP) self.socket.linger = 0 self.port = port
[docs] def run(self): self.socket.bind("tcp://*:%s" % (self.port)) self.socket.linger = 0 while not self.event.is_set(): msg = self.socket.recv_pyobj() # print 'msg = ', msg if msg == "get_number": self._id += 1 self.socket.send_pyobj(self._id) elif msg == "reset_number": self._id = -1 self.socket.send_pyobj(self._id)
[docs] def stop(self): print("stopping server...") self.event.set() self.socket.close() self.context.destroy()
if __name__ == "__main__": server = zmqServer() server.daemon = True server.start() while True: time.sleep(1)