Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- #send message to 6777
- #receive message from 8888
- #default host = local host = 127.0.0.1
- import threading, socket, Queue , pprint, msgpack
- pp = pprint.PrettyPrinter(indent=4)
- class Sender:
- def __init__(self, UDP_IP_ADDRESS="127.0.0.1", UDP_PORT_NO=6777):
- self.UDP_IP_ADDRESS = UDP_IP_ADDRESS
- self.UDP_PORT_NO = UDP_PORT_NO
- self._socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- def sendMessage(self, message):
- self._socket.sendto(message, (self.UDP_IP_ADDRESS, self.UDP_PORT_NO))
- class Receiver(threading.Thread):
- def __init__(self, UDP_IP_ADDRESS="127.0.0.1", UDP_PORT_NO=8888):
- self.result = None
- self.UDP_IP_ADDRESS = UDP_IP_ADDRESS
- self.UDP_PORT_NO = UDP_PORT_NO
- self.messages = Queue.Queue(64)
- threading.Thread.__init__(self)
- def run(self):
- self._socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- self._socket.bind((self.UDP_IP_ADDRESS, self.UDP_PORT_NO))
- while True:
- response = self._socket.recv(2048)
- # self.messages.put(msgpack.unpackb(response), True)
- pp.pprint(response)
- # pp.pprint(self.getNewMessage())
- def getNewMessage(self):
- return self.messages.get_nowait() if not self.messages.empty() else None
- def main():
- # sends messages from application to pipeline
- def producer():
- sender = Sender()
- while True:
- # does not get the correct data
- sender.sendMessage(b'\x01'+b'\x08') # messageHeader=1, messageType=8 for imu batch
- # receives messages from pipeline to application
- def consumer():
- thread = Receiver()
- thread.start()
- cons_thread = threading.Thread(target=consumer)
- prod_thread = threading.Thread(target=producer)
- cons_thread.start()
- prod_thread.start()
- cons_thread.join()
- prod_thread.join()
- if __name__ == '__main__':
- main()
Add Comment
Please, Sign In to add comment