• Publicidad

Mantener conexión abierta entre sockets

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Mantener conexión abierta entre sockets

Notapor panterozo » 2010-04-30 08:23 @391

Tengo una aplicación cliente servidor con IO::Socket. La conexión se cierra si cada 600 segundos (10 min) no se recibe ningún dato desde el cliente al servidor.

¿Cómo puedo saber si el servidor ha recibido o no algún comando desde el cliente antes de llegar al límite de tiempo de conexión, para enviar automáticamente cualquier cosa y mantener la conexión abierta todo el tiempo que desee?

En este tiempo de inactividad, deseo enviar cada 5 min algún mensaje cualquiera y así mantener la conexión abierta.

Gracias.
panterozo
Perlero nuevo
Perlero nuevo
 
Mensajes: 160
Registrado: 2010-01-26 08:36 @400

Publicidad

Re: Mantener conexión abierta entre sockets

Notapor explorer » 2010-04-30 15:54 @704

Una opción es usar IO::Select, que cuenta con funciones que se disparan si ha pasado un determinado tiempo.

De todas formas, con Net::Server puedes crear servidores de forma más cómoda.

La solución profesional es usar POE, naturalmente.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Mantener conexión abierta entre sockets

Notapor salva » 2010-05-06 03:57 @206

En vez de hacer que el servidor cierre la conexión por inactividad, usa la funcionalidad de keep-alive del protocolo TCP.

Leete la página man tcp(7) y dentro de perlfunc(1) la entrada de setsockopt.
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 25 invitados

cron