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