<div class="gmail_quote">2009/4/17 florencia spinella <span dir="ltr"><<a href="mailto:florenciaspinella@yahoo.com.ar">florenciaspinella@yahoo.com.ar</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;" valign="top">
Muchas gracias, ahora voy a averiguar cómo funciona en windows el tema del teclado (en linux, si no me equivoco, el 0 representa stdin..o el 1). Yo sugerí utilizar el select( ) pero como la consigna es crear un thread de descarga por cada cliente conectado (el cliente es el browser mediante un " http://IP:port/archivoaDescargar") mis compañeros optaron por no utilizar dicha función (que, según leímos, era una alternativa a la creación de múltiples threads...un proceso "multiplexaba" todos lso pedidos) . De todas formas está por verse si la usamos o no, como pensabamos todos diferente le mandamos un mail a la ayudante. Si funciona ok esto es una excusa más para seguir intentando imponer esta función, jajaja. GRACIAS!<br>
<br><br><span style="font-weight: bold; font-family: arial,helvetica,sans-serif;">Florencia</span></td></tr></tbody></table></blockquote><div><br> <br>Podes seguir utilizando la función `select' en el flujo principal del programa para averiguar cuando recibis una conexión en tu socket de escucha. Cuando te encontras una conexión la aceptas (por lo que obtenes un nuevo socket para tratar al cliente) y creas un nuevo hilo que atienda a este socket  y se ocupe de enviar las cabeceras, archivo, etc. Mientras tanto tu flujo/hilo principal vuelve al `select' esperando que se escriba el socket de escucha o el descriptor de entrada estándar.<br>
Usar `select' no es incompatible con usar hilos, aunque es Linux/Unix suele ser más tradicional usar `select' + procesos.<br><br>Te recomiendo que leas la guía Beej y trates de conseguir el Unix Network Programming (volumen 1) de W.R. Stevens, si bien se concentra mucho en Unix, da un montón de ideas sobre como implementar servidores/clientes con diferentes combinaciones de `select', llamadas bloqueantes/ no bloqueantes, hilos, procesos etc.<br>
<br>Saludos.<br></div></div>