Citando this socket tutorial:tomas pasivas y activas
enchufes son de dos tipos primarios. Un socket activo está conectado a una toma de corriente activa a distancia a través de un conjunto de datos abiertos conexión ... Un socket pasivo se no están conectados, sino que espera una conexión entrante, que generar un nuevo socket activo una vez que una conexión es establecida ...
cada puerto puede tener una sola toma pasiva enganchan a ella, a la espera conexiones entrantes, y tomas múltiples activos, cada uno correspondientes a una conexión abierta en el puerto. Es como si el trabajador de la fábrica está a la espera de nuevas mensajes para llegar (que representa la toma pasiva), y cuando uno mensaje llega de un nuevo emisor, que inicia una correspondencia (una conexión ) con ellos por delegante alguien más (un socket activo ) para leer realmente el paquete y responder de nuevo al remitente si es necesario . Esto permite que el trabajador de fábrica sea libre de recibir nuevos paquetes . ...
Entonces el tutorial explica que, después de que se establece una conexión, el socket activo continúa la recepción de datos hasta que no hay bytes restantes, y luego se cierra la conexión.
Lo que no entendí es esto: supongamos que hay una conexión entrante al puerto y el remitente desea enviar algunos datos pequeños cada 20 minutos. Si el socket activo cierra la conexión cuando no hay bytes restantes, ¿el remitente tiene que volver a conectarse al puerto cada vez que desea enviar datos? ¿Cómo persistimos una conexión establecida una vez por un tiempo más largo? ¿Puedes decirme qué me falta aquí?
Mi segunda pregunta es, ¿quién determina el límite de los enchufes activos que funcionan simultáneamente?
Está parafraseando ese artículo y tomando partes de diferentes secciones del artículo. Los contextos son diferentes. En la última sección, el autor está explicando su programa. Los zócalos no actúan así por defecto, de hecho, si se olvida de cerrar el zócalo, pueden suceder cosas malas. El socket no cierra automágicamente cuando se recibe el último byte. – SRM
OK, pensé que esa era la convención y simplemente me preguntaron qué me falta aquí. Soy nuevo en los conceptos y es por eso que quiero cuestionar todo lo que encuentro difícil de entender. – aslisabanci
No hay problema, solo quería asegurarme de que entendiera que debe cerrar el socket explícitamente. Podría ahorrarte algunos dolores de cabeza cuando estés rascándote la cabeza tratando de descubrir por qué el zócalo no se cerró :). – SRM