import socket import sys import logging import urllib import MySQLdb from thread import * HOST = '103.247.11.59' # Symbolic name meaning all available interfaces PORT = 8080 # Arbitrary non-privileged port #logging.basicConfig(filename='terminalsrv.log',level=logging.DEBUG) #db = MySQLdb.connect(host='localhost', usericu',passwd='passicu2017',db="mspsilaw_icu") #cursor = db.cursor() s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print 'Socket created' #Bind socket to local host and port try: s.bind((HOST, PORT)) except socket.error as msg: print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1] sys.exit() print 'Socket bind complete' #Start listening on socket s.listen(10) print 'Socket now listening' #Function for handling connections. This will be used to create threads def clientthread(conn): #Sending message to connected client #conn.send('Welcome to the server. Type something and hit enter\n') #send only takes string while True: #infinite loop so that function do not terminate and thread do not end. #Receiving from client try: data = conn.recv(1024) if len(data)>0: db = MySQLdb.connect(host='localhost', user='mspsilaw_usertmp',passwd='passicu2017',db="mspsilaw_temp") cursor = db.cursor() content = data.split("report=") detailcontent = content[1].split("%0A") #f, dt, id_dev, x1, x2, x3,x4, x5, x6, x7, x8, a1, a2, a3, y1, y2 d_data =['','','',''] table_name ='' for val in range(len(detailcontent)): if val>15: break row = detailcontent[val].split(":") if val==1: buff=row[1]+":"+row[2]+":"+row[3] d_data[val-1]=urllib.unquote(buff).decode() if val==2: table_name = urllib.unquote(row[1]).decode() if (val>10) and (val<14): d_data[val-10] = urllib.unquote(row[1]).decode() new_tbl = 'CREATE TABLE IF NOT EXISTS '+table_name+' (dt varchar(255),a1 varchar(255), a2 varchar(255), a3 varchar(255))' cursor.execute(new_tbl) sql = "insert into "+table_name+" (dt, a1, a2, a3) values (%s,%s,%s,%s)" cursor.execute(sql, d_data) db.commit() cursor.close() db.close() #logging.debug(content[1]) conn.send("HTTP/1.1 200 OK\n" +"Content-Type: text/html\n" +"\n" # Important! +"response=Report Data Sent success with GPRS\n"); break except socket.error as msg: print 'socket was disconnect' #came out of loop conn.close() #now keep talking with the client while 1: #wait to accept a connection - blocking call conn, addr = s.accept() print 'Connected with ' + addr[0] + ':' + str(addr[1]) #start new thread takes 1st argument as a function name to be run, second is the tuple of arguments to the function. start_new_thread(clientthread ,(conn,)) print 'Disconnected with ' + addr[0] + ':' + str(addr[1]) s.shutdown(socket.SHUT_WR) s.shutdown(socket.SHUT_RD) s.close()