recv.py
1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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()