Hace 17 años | Por mis2centavos a blog.smaldone.com.ar
Publicado hace 17 años por mis2centavos a blog.smaldone.com.ar

He iniciado un tutorial básico sobre programación con sockets y concurrencia. Por ahora, en la primera entrega, se lleva a cabo del diseño de un protocolo muy simple, un servidor secuencial y un cliente del mismo. Más adelante se desarrollará un servidor concurrente y multithread. Los ejemplos están en Perl, pero el objetivo es introducir los conceptos básicos más allá del lenguaje de implementación. En esta etapa inicial me vendrían muy bien opiniones, críticas y sugerencias.

Comentarios

mis2centavos

Según parece, sale pronto. Gracias a ustedes por el interés

DZPM

¡Buen manual!

Liso

el voto de Spam, lo comprendo, pero el de Erronea???.

Bueno, te meneo porque esta bastante chulo... ahora a ver si te saco algun error

ergaster

Mira, te doy mi voto pero que conste que te odio a muerte por no haberlo publicado el año pasado madre mía, lo bien que me habría ido para hacer las prácticas de la asignatura de sistemas operativos!
Muchos estudiantes sufridores te lo agradecerán seguro

D

Algunas dudas que tengo y que igual podrías añadir a esta primera parte del manual.

1. ¿Qué ocurre si el cliente no cierra la sesión? ¿Debe el servidor encargarse de cerrar las sesiones sin actividad durante un tiempo?
2. ¿Dónde se define la constante SOMAXCONN? ¿Es una constante ya prefenida por el SO o se puede cambiar?

Malolillo

pal del.icio.us de cabeza.
Gracias por el manual.

D

Espero que esto salga a portada :). gracias por compartirlo

jferrero

El enlace ha sido puesto en otros sitios, como el del foro de Perl en Español. Enhorabuena.

mis2centavos

Lamento lo del lenguaje (realmente, aunque me gusta Perl para ciertas cosas, es poco amigable para un tutorial introductorio). En mi defensa puedo decir que:

- He tratado de no utilizar construcciones "extrañas" ni ofuscadas.
- Mas adelante trataré el tema de la concurrencia (con procesos y threads), y en Perl es realmente sencillo hacerlo.

No crean que no he evaluado qué lenguaje utilizar (pero cualquiera hubiese sido, siempre hubiera tenido varios puntos en contra).

Nuevamente, gracias por el interés y los comentarios

mis2centavos

Te respondo aquí #10 (luego actualizaré el artículo):

En una situación real, lo más apropiado sería que el servidor cierre las conexiones inactivas pasado un tiempo.
SOMAXCONN está definido en el SO (include/linux/socket.h)

ant30

El único problema, único lenguaje y además es Perl. No estaría mal poner ejemplos para realizar lo mismo en diferentes lenguajes más o menos parecidos.

D

buena iniciativa, aunque como han dicho, yo optaría por algún otro lenguaje (al menos uno no tan ofuscado como perl :P)