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()