¿El enchufe se cerrará automáticamente si no está cerrado? ¿Por qué necesitamos una conexión de latidos del corazón?
Si no cierra activamente el socket, el sistema no se apagará automáticamente. A menos que el proceso actual se bloquee, el sistema operativo reciclará el socket ocupado antes de cerrarlo.
El motivo por el que se necesita una conexión de latido es principalmente para determinar si la conexión actual es válida y se puede utilizar. En aplicaciones prácticas, suponiendo que no haya transmisión de datos durante un período de tiempo, en teoría no debería haber problemas para conectarse. Sin embargo, la red es compleja y es común que ocurran problemas durante el proceso. , el proceso de la otra parte se cuelga y los paquetes se pierden con frecuencia. En ese momento, la conexión TCP no está disponible, pero la capa de aplicación no lo sabe. Si necesita conocer la situación de la red, debe comprender el complicado tiempo de espera. TCP implementa dicha función desde la capa inferior. El mecanismo de latido es que TCP envía un mensaje después de un período de tiempo para determinar si la conexión aún existe. Si existe, enviará un paquete para confirmar que la red es válida. notificará a la aplicación de la capa superior que hay un problema con la red actual.