Gracias por las respuestas, me han sido de utilidad.<br><br>Saludos.<br><br><div class="gmail_quote">El 2 de junio de 2009 22:33, Programante <span dir="ltr"><<a href="mailto:programante@gmail.com">programante@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Matias V. escribió:<br>
<div class="im">> Hola, estoy empezandoa programar sockets y necesitaria aclarar una<br>
> duda sobre la ejecucion de un programa que hace uso de los mismos.<br>
><br>
> El siguiente es el codigo de un servidor que solamente envia la cadena<br>
> "Prueba socket" (es un ejemplo modificado de uno que aparece en la<br>
> guia beej):<br>
><br>
> ..................................................................................................................................................................................................................................<br>

><br>
><br>
</div><div class="im">> El programa se compila y funciona sin problemas.Lo que no entiendo es<br>
> como se va ejecuntando el codigo. Hasta donde entiendo primero se crea<br>
> un socket usando la función socket() , luego se asocia dicho socket a<br>
> un puerto y una dirección usando bind(), y luego se ejecuta la función<br>
> listen() que le indica al S.O. que se quede fijando si hay conexiones<br>
> entrantes.Es decir (esta sería la duda) que cuando se ejecuta listen()<br>
> ¿el programa detiene su ejecución en ese punto y se queda "esperando"<br>
> un pedido de conexión, y continua ejecutandose cuando lo recibe?. ¿O<br>
> es cuando aparece la función accept que el programa se queda esperando<br>
> hasta que aparesca una conexión, es decir "le pregunta" al S.O. si<br>
> hubo alguna conexión y en caso afirmativo la acepta o en caso negativo<br>
> se que esperando hasta que halla alguna ?. Pregunto esto porque miro<br>
> el codigo y me parece que si en listen() o accept() el programa no se<br>
> detuviera, este llegaria al final y terminaria ya que en el mismo no<br>
> hay ningun loop.<br>
<br>
</div>Se bloquea en accept (a menos que hayas establecido previamente el<br>
socket como no bloqueante).<br>
Después de haber llamado a listen(), el sistema aceptará BACKLOG<br>
conexiones en una cola hasta que empiece a rechazar (normalmente<br>
llamarás a accept mucho antes).<br>
Fíjate que podrías seguir trabajando en otras cosas y vigilar con<br>
select() (u otro método) el momento en que hay conexiones esperando,<br>
momento en el cual llamarías a accept sin quedarte bloqueado (puesto que<br>
sabes que hay algo, no te bloquearás).<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br>