El día 25 de agosto de 2008 16:35, Herr Groucho <[EMAIL PROTECTED]> escribió:
> Con 10000 conexiones, tendría 10001 procesos. Es esta una estrategia
> cuerda para manejar 10000 conexiones?

¿Y es imprescindible que se mantenga la conexión establecida
permanentemente? Dada la cantidad de equipos y que no has manifestado
preocupación por el ancho de banda, supongo que no habrá una
transmisión constante de datos. Tal vez sea más sensato establecer la
conexión, mandar el dato y cerrarla. En ese caso se crearía un hijo
para cada conexión pero se terminaría rápidamente. Podrías copiar el
funcionamiento de Apache, que mantiene una cantidad de hijos corriendo
por las dudas y les asigna trabajo a medida que llegan las
comunicaciones.

Por otro lado, un solo programa posiblemente pudiera hacer el trabajo,
pero reducirías bastante la complejidad si no mantibieras las
conexiones abiertas o si usaras UDP en lugar de TCP. La calidad de las
comunicaciones actuales hace que sea muy raro que se pierda un
paquete. Si te querés asegurar de que no se pierde nada implementás un
mensaje de respuesta con un acuse de recibo, timeout y reenvío. Claro
que complica un poco el programa en el equipo emisor pero reduce el
tamaño de los paquetes y creo que solucionaría el problema del
servidor.

Responder a