Red de conocimiento informático - Problemas con los teléfonos móviles - En el protocolo TCP, una vez cerrado el cliente, ¿cómo sabe el servidor que el usuario se ha desconectado?

En el protocolo TCP, una vez cerrado el cliente, ¿cómo sabe el servidor que el usuario se ha desconectado?

Puede saberlo por la longitud de los datos recibidos por el servidor. Si la longitud de los datos recibidos por el servidor es 0, significa que su programa cliente se ha desconectado. Desde la perspectiva de la pila de protocolos TCP/IP, esto significa que el programa cliente cierra la mitad de la conexión que escribió y envía un FIN al servidor. Esto implica la migración del estado de TCP. Para obtener conocimientos en esta área, le recomiendo que lea el Volumen 1 "Explicación detallada de TCP/IP" del Sr. Richard Stevens y el Volumen 1 "Programación de redes Unix", que tienen explicaciones detalladas.

En cuanto a su segunda pregunta, le sugiero que observe más de cerca el código del programa de su servidor. El programa del servidor primero creará un socket de escucha. Cuando el cliente se conecte, el servidor aceptará la conexión del cliente en un nuevo socket. Por tanto, no hay ningún problema de "confusión". Con respecto a este tema, también le recomendamos que lea los dos libros clásicos anteriores sobre programación de redes.