server
import socket import threading import SocketServer import json, types,string import os, time #server handler def test(self): return HttpResponse(self.request.META['REMOTE_ADDR']) class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler): def handle(self): data = self.request.recv(1024) jdata = json.JSONDecoder().decode(data) print "Client : '%r'"% jdata['content'] jresp = json.JSONEncoder().encode(jdata) self.request.sendall(jresp) class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer): pass if __name__ == "__main__": # Port 0 means to select an arbitrary unused port #print test() HOST, PORT = "localhost", 50001 SocketServer.TCPServer.allow_reuse_address = True server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler) ip, port = server.server_address # Start a thread with the server -- that thread will then start one # more thread for each request server_thread = threading.Thread(target=server.serve_forever) # Exit the server thread when the main thread terminates server_thread.daemon = True server_thread.start() print "Server loop running in thread:", server_thread.name print " .... waiting for connection" # Activate the server; this will keep running until you # interrupt the program with Ctrl-C server.serve_forever()
import socket import threading import SocketServer import json #HeartBeat and the Inational def client(ip, port, message): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) socket.setdefaulttimeout(1) except socket.error, msg: print 'Failed to create socket. Error code: ' + str(msg[0]) + ' , Error message : ' + msg[1] sys.exit(); try: remote_ip = socket.gethostbyname( ip ) except socket.gaierror: #could not resolve print 'Hostname could not be resolved. Exiting' sys.exit() try: sock.connect((ip, port)) print "Client: {}".format(message) try: content_msg={'content':message} json_msg=json.JSONEncoder().encode(content_msg) sock.sendall(json_msg) except socket.error: #Send failed print 'Send failed' sys.exit() response = sock.recv(1024) if len(response)!=0: jresp = json.JSONDecoder().decode(response) #jresp = json.loads(response) print "Server: ",jresp['content'] return jresp else: return False sock.close() #print jresp[0]['src'] except: print 'Connect failed' client('localhost', 50001, 'ddddddd')