viernes, enero 14, 2005

Mas sobre sockets


Bueno sin haber empollado el tema lo suficiente, y sin haber leido un libro en condiciones (que deberia). Puedo afirmar (gracias web) que (ojo, que en alguna afirmacion podria estar equivocado; no pongo la mano en el fuego):

+ En principio no se pueden reutilizar puertos en diferentes procesos.
+ La excepcion es cuando tenemos un servidor concurrente que atiende las conexiones con procesos hijos. Al hacer el fork(), se comparten los descriptores, con lo cual el puerto se va a compartir. La diferencia con el caso anterior es que el socket ya se ha creado. Supongo que en el caso anterior fallaría la creación del socket.
+ He visto que hay una opcion que se REUSEPORT, si todos los sockets se crean con esta opcion, se podrá reutilizar el puerto. Eso si, todos los procesos deben de usar la opción. Nota: En la faq de sockets indica algún ejemplo de uso.
+ Cuando se acepta una conexión se crea un nuevo socket que es copia del de escucha. Es por ello que un proceso puede tener N conexiones en el mismo puerto.

Seria interesante hacer unas pruebas sobre ello.

No hay comentarios: