ltest

Páginas: 32 (7768 palabras) Publicado: 20 de marzo de 2013
Guía Beej de Programación en redes

Guía Beej de Programación en Redes
Uso de sockets de Internet
Brian "Beej" Hall
beej@piratehaven.org
Copyright © 1995-2001 por Brian "Beej" Hall
Traducción al español a cargo de Damián Marqués Lluch

Historial de Revisiones
Versión de la revisión: 1.0.0

Agosto de 1995

Revisado por: beej

13 de Enero de 1999

Revisado por: beej

6 de Marzode 2001

Revisado por: beej

Versión Inicial

Versión de la revisión: 1.5.5
Versión más reciente en HTML.

Versión de la revisión: 2.0.0

Convertido a DocBook XML, correcciones, añadidos.

Versión de la revisión: 2.3.1

8 de Octubre de 2001

Revisado por: beej

Corregidas algunas erratas, error de sintaxis en client.c, se añaden algunas cosas a la sección de
Preguntas máscomunes.

Página 1

Guía Beej de Programación en redes

Tabla de Contenidos
1. Introducción
1.1. Destinatarios
1.2. Plataforma y compilador
1.3. Sitio web oficial
1.4. Nota para programadores Solaris/SunOS
1.5. Nota para programadores Windows
1.6. Política de respuesta a correos electrónicos
1.7. Replicación
1.8. Nota para traductores
1.9. Copyright y distribución
2. ¿Qué es unsocket?
2.1. Dos tipos de Sockets de Internet
2.2. Tonterías de bajo nivel y teoría de redes
3. structs y manipulación de datos
3.1. ¡Convierte a valores nativos!
3.2. Direcciones IP y como tratarlas
4. Llamadas al sistema
4.1. socket()--¡Consigue el descriptor de fichero!
4.2. bind()--¿En qué puerto estoy?
4.3. connect()--¡Eh, tú!
4.4. listen()--Por favor que alguien me llame
4.5.accept()--"Gracias por llamar al puerto 3490."
4.6. send() y recv()--¡Háblame, baby!
4.7. sendto() y recvfrom()--Háblame al estilo DGRAM
4.8. close() y shutdown()--¡Fuera de mi vista!
4.9. getpeername()--¿Quién eres tú?
4.10. gethostname()--¿Quién soy yo?
4.11. DNS--Tú dices "whitehouse.gov", Yo digo "198.137.240.92"
5. Modelo Cliente-Servidor
5.1. Un servidor sencillo
5.2. Un cliente sencillo5.3. Sockets de datagramas
6. Técnicas moderadamente avanzadas
6.1. Bloqueo
6.2. select()--Multiplexado de E/S síncrona
6.3. Gestión de envíos parciales con send()
6.4.Consecuencias de la encapsulación de datos
7. Referencias adicionales
7.1. Páginas del manual (man)
7.2. Libros
7.3. Referencias en la web
7.4. RFCs
8. Preguntas más comunes
9. Declinación de responsabilidad y solicitud deayuda

Página 2

Guía Beej de Programación en redes

1. Introducción
¡Eh!, ¿la programación de sockets te quita el sueño? ¿Todo esto es demasiado complicado
para desentrañarlo sólo con las páginas de man? Quieres hacer buenos programas para
Internet, pero no tienes tiempo de pelearte con montones de structs para tratar de adivinar si
tienes que ejecutar bind() antes que connect() ,etc., etc.
Bueno, ¿sabes qué?, ya me he ocupado de todo ese molesto asunto y estoy deseando
compartir la información con todo el mundo. Has venido al lugar adecuado. Este documento
debería bastar para que un programador en C medianamente competente empiece a trabajar
en un entorno de redes.

1.1. Destinatarios
Este documento se ha escrito a modo de tutorial, y no como una guía de referencia.Probablemente, es de máxima utilidad para personas que están empezando a programar con
sockets y buscan donde apoyarse. No es, en absoluto, la guía completa de programación de
sockets.
Sin embargo, con suerte será suficiente para que esas páginas de man empiecen a cobrar
sentido... :-)

1.2. Plataforma y compilador
El código que se muestra en este documento se compiló en un PC con Linuxusando el
compilador gcc de Gnu. Sin embargo, debería poder compilarse en prácticamente cualquier
otra plataforma que use gcc. Evidentemente, esto no te sirve si programas para Windows-consulta más abajo la sección sobre programación en Windows .

1.3. Sitio web Oficial
La ubicación oficial de este documento se encuentra en Chico, en la Universidad del Estado de
California, en la URL:...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS