Red de conocimiento informático - Aprendizaje de programación - El cliente del servidor TCP de programación de red LINUX tiene código confuso, ¿cómo solucionarlo?

El cliente del servidor TCP de programación de red LINUX tiene código confuso, ¿cómo solucionarlo?

Solución:

1. Agregue memset(buff, 0, sizeof(buff)); antes del código del cliente n=read(socketfd, buff, 1023); asegúrese de que se reciban datos más cortos (usando TCP no puede garantizar que los datos recibidos y los datos enviados tengan la misma longitud cada vez) y que la impresión también sea correcta;

2. 1 ] ='\0'; modificado para buff[n]='\0';, esto se debe a que n es el subíndice, que ya es la última posición;

3. buff[n 1] ='\0'; modificado a buff[n]='\0';, esto se debe a que n es un subíndice, que ya es la última posición, y como 2), el signo más también debe ser eliminado, debería ser un error administrativo;

4. El mayor problema es que al escribir (connectfd, buff, 1023 en el lado del servidor, ¿cómo puede garantizar que recibirá 1023 caracteres)? La condición en while también debe eliminarse como una declaración en WHILE, y se debe agregar la declaración memset mencionada anteriormente, y la escritura (connectfd, buff, 1023) aquí debe cambiarse a write(connectfd, buff, strlen(buff); )) .

¡Te deseo *** mucha suerte!