import socket import time def int2str(n): str_n = str(n) l_n = len(str_n) if l_n == 1: str_n = "00000" + str_n elif l_n == 2: str_n = "0000" + str_n elif l_n == 3: str_n = "000" + str_n elif l_n == 4: str_n = "00" + str_n elif l_n == 5: str_n = "0" + str_n return str_n host = "192.168.1.117" s = socket.socket() s.bind((host, 5500)) while True: print "waiting client..." s.listen(1) sc, addr = s.accept() all = "" # i=0 #to avoid infinit loop cnt = 0; first = 0; while True: recibido = sc.recv(1024) all = all + recibido cnt = len(all) if first == 0: first = 1; lng = int(all[21:27]) # 6 bytes to get the frame size # i = i + 1 # if cnt == lng or i == 30: if cnt == lng: break print "\nSize of frame:" + str(lng) print "\nNumber of bytes received:" + str(cnt) data = "ok" dfl = 0 lng = int2str(dfl) msg = "jro" + "abs" + "src" + "cm1" + lng + "cmd" + data + "crc" # lmsg = len(msg) lng = int2str(lmsg) msg = "jro" + "abs" + "src" + "cm1" + lng + "cmd" + data + "crc" # sc.send(msg) print "Enviando respuesta en " + str(len(msg)) + " bytes." sc.close() s.close()