diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ReceiveDictTcp.py | 44 | ||||
| -rw-r--r-- | src/SendDictTcp.py | 14 | 
2 files changed, 58 insertions, 0 deletions
diff --git a/src/ReceiveDictTcp.py b/src/ReceiveDictTcp.py new file mode 100644 index 0000000..464a6ec --- /dev/null +++ b/src/ReceiveDictTcp.py @@ -0,0 +1,44 @@ +import socket +import threading +import json +from Queue import Queue +import sys + +class ReceiveDictTcp(object): +    def __init__(self, host, port): +        self.host = host +        self.port = port +        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) +        self.sock.bind((self.host, self.port)) +        self.queue = Queue() +        self.thread = threading.Thread(target = self.listen) + +    def start(self): +        self.thread.start() + +    def listen(self): +        self.sock.listen(5) +        while True: +            client, address = self.sock.accept() +            client.settimeout(60) +            print("connecting to " + str(client) + " " + str(address))  +            self.listenToClient(client,address) + +    def listenToClient(self, client, address): +        size = 1024 +        while True: +            try: +                data = client.recv(size) +                if data: +                    # Set the response to echo back the recieved data  +                    jresponse = data +                    response = json.loads(jresponse) +                    client.send(json.dumps(response)) +                    self.queue.put(response) +                else: +                    raise Exception('disconnected') +            except Exception as e: +                print str(e) +                client.close() +                return False diff --git a/src/SendDictTcp.py b/src/SendDictTcp.py new file mode 100644 index 0000000..562e36a --- /dev/null +++ b/src/SendDictTcp.py @@ -0,0 +1,14 @@ +import socket +import json + +class SendDictTcp(object): +    def __init__(self, host, port): +        self.host = host +        self.port = port +        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +        self.sock.connect((self.host, self.port)) +        self.buffer_size = 1024 + +    def send(self, msg): +        self.sock.send(json.dumps(msg)) +        return self.sock.recv(self.buffer_size)  | 
