Article View: es.comp.os.linux.programacion
Article #14876Re: TCP/IP: Detectar conexion ROTA
From: Jose Manuel
Date: Fri, 15 Sep 2000 00:00
Date: Fri, 15 Sep 2000 00:00
40 lines
2140 bytes
2140 bytes
Angel Cabello escribi� en mensaje <39B7AFFB.C6052025@masterd.es>... >Cuando un proceso que tiene abierto un socket cierra la conexion, el otro lado >recibe una se�al, un sigpipe. Eso no es del todo asi. Yo me referia a un corte de conexion. Y cuando digo corte me refiero a cortar el cable, apagar el ordenador por la bravas, etc.... es decir, un fin de conexion NO ORDENADO. El unico problema lo tienes si un solo proceso >esta leyendo de mas de un socket, bien porque sea multihebra o porque uses >sockets no bloqueantes, pero seguro que alguna manera habra para distinguir >cual es el socket que se ha cerrado. Lo mejor para un servidor medianamente >cargado (algo que no sea ebay o yahoo) es usar un proceso padre para recibir >las conexiones y otro para atender cada peticion. Ciertamente asi lo tenia hecho. Un proceso padre dedicado a atender conexiones y n-procesos hijos para cada una de las comunicaciones. >Leete el Stevens y alli te aparecen 100.000 ejemplos. Stevens leido. No llega a tantos ejemplos pero casi.. jejejeje 8-))) Finalmente la solucion pasa por configurar el socket como SO_KEEPALIVE y ajustar en el Kernel los timers para la deteccion de conexion rota. Una vez que lo entiendes es muy sencillo, pero ha costado lo suyo. Y eso PESE a los ingenieros de una conocidiiisima empresa de servidores de ordenadores. Segun ellos era imposible, la unica opcion era hacer polling a cada extremo de la conexion. En fin, para que mas comentarios. Gracias por la ayuda, y gracias a Stevens por existir (tengo sus 2 conocidos libros). Un saludo a todos.
Technical Details
Message-ID:
<8psjq0$j3e$1@talia.mad.ttd.net>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<8p7rnh$48l$1@talia.mad.ttd.net> <39B7AFFB.C6052025@masterd.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,782f98bbd2b2119b X-Google-Attributes: gidf86c8,public From: "Jose Manuel" <pik@latinmail.com> Subject: Re: TCP/IP: Detectar conexion ROTA Date: 2000/09/15 Message-ID: <8psjq0$j3e$1@talia.mad.ttd.net> X-Deja-AN: 670051804 References: <8p7rnh$48l$1@talia.mad.ttd.net> <39B7AFFB.C6052025@masterd.es> Organization: Telefonica Transmision de Datos X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Newsgroups: es.comp.os.linux.programacion