Respuesta: Las cadenas en C y sus extraños comportamientos... El error es el siguiente. strlen te devuelve la cantidad de caracteres que hay hasta el caracter de fin de cadena ('\0'); seguramente eso esta fallando.
prueba asignar asi:
ultimorecibido[4] = '\0';
a ver que sale... |