Red de conocimiento informático - Problemas con los teléfonos móviles - printf() no bloquea

printf() no bloquea

En su primer printf "Recv mes from [%s][%d]:\n}", ¿cuál es la situación con el último "}"?

Además, el flujo de salida de printf está almacenado en un búfer y solo se generará cuando obtenga un "\n";

Puedes usar fflush(stdout) para hacer esto.

Se recomienda generar el valor de retorno de fflush al depurar... Quizás la actualización falló...

Pero hay otro método 2, cancelar el almacenamiento en búfer estándar

(requiere stdlib.h)

setbuf(stdout,NULL);//Este método solo se usa para Unix y sistemas similares a Unix, no sé si es factible en Windows

Modificado El código fuente es el siguiente setbuf(stdout,NULL);

while?(1){

sRec?=?recv(sAccept,?rbuf,?sizeof (rbuf),0);

fflush(stdout);

if?(sRec?>?0){

printf("Recv?mes? de?[%s][ %d]:\n",(char*)inet_ntoa(cli.sin_addr),ntohs(cli.sin_port));

printf("%s",rbuf) ;

}