recv.py 1.46 KB
import socket
import SocketServer
import pickle
import json
import cjson

source = 'localhost'
port = 9999


def recvall(sock):
    total_data = []
    while True:
        data = sock.recv(4096)
        if not data: break
        total_data.append(data)
    return ''.join(total_data)


class MyTCPHandler(SocketServer.BaseRequestHandler):
    """
    The RequestHandler class for our server.

    It is instantiated once per connection to the server, and must
    override the handle() method to implement communication to the
    client.
    """

    def handle(self):
        # self.request is the TCP socket connected to the client
        # data = ""
        # part = None
        self.data = recvall(self.request).strip()
        # self.data = self.request.recv(10485760).strip().decode('utf-8').encode('latin-1')
        # print self.data
        # self.data = self.data.decode()
        # item = json.loads(self.data)
        item = cjson.decode(self.data)
        # item['data'] = item['data'].encode('latin1')
        print item

    # just send back the same data, but upper-cased
    # self.request.sendall('hello')


if __name__ == "__main__":
    HOST, PORT = "localhost", 9999
    SocketServer.TCPServer.allow_reuse_address = True
    # Create the server, binding to localhost on port 9999
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)

    # Activate the server; this will keep running until you
    # interrupt the program with Ctrl-C
    server.serve_forever()