nose

Páginas: 23 (5645 palabras) Publicado: 8 de octubre de 2014
Programación de sockets en C de Unix/Linux
En los puntos 1 a 3 se cuentan de forma muy sencilla unos conceptos básicos sobre comunicaciones en red y los sockets y la arquitectura cliente/servidor. Si ya sabes de qué va el tema, te lo puedes saltar. De todas formas, no estaría de más un ojo al punto 2, ya que se introduce alguna cosa avanzadilla.
Del 4 al 7 se cuentan por encima los pasos quedeberían seguir nuestros programas cliente y servidor para conectarse y hablar entre ellos, las funciones de c/linux a las que deberían irse llamando, así como la configuración necesaria de los ficheros de linux implicados.
Del 8 al 10 se muestra un código de ejemplo que funciona y se explica paso a paso.
El 11 y 12 para introducirse en temas más complejos dentro de sockets. 
1. Introducción
2.Los sockets
3. Arquitectura cliente/servidor
4. La conexión
5. El servidor
6. El cliente
7. Ficheros unix implicados
8. Ejemplo (Fuentes.zip)
9. Código del servidor
10. Código del cliente
11. Algunas consideraciones
12. Bibliografia
Temas algo más avanzados: una mini-librería para facilitar el uso de sockets. Atender a varios clientes utilizando select(). 
INTRODUCCIÓN
En una red deordenadores hay varios ordenadores que están conectados entre si por un cable. A través de dicho cable pueden transmitirse información. Es claro que deben estar de acuerdo en cómo transmitir esa información, de forma que cualquiera de ellos pueda entender lo que están transmitiendo los otros, de la misma forma que nosotros nos ponemos de acuerdo para hablar en inglés cuando uno es italiano, elotro francés, el otro español y el otro alemán.
Al "idioma" que utilizan los ordenadores para comunicarse cuando están en red se le denomina protocolo. Hay muchísimos protocolos de comunicación, entre los cuales el más extendido es el TCP/IP. El más extendido porque es el que se utiliza en Internet.
Aunque todo esto pueda parecer complicado y que no podemos hacer mucho con ello, lo cierto es quepodemos aprovecharlo para comunicar dos programas nuestros que estén corriendo en ordenadores distintos. De hecho, con C en Linux/Unix tenemos una serie de funciones que nos permiten enviar y recibir datos de otros programas, en C o en otros lenguajes de programación, que estén corriendo en otros ordenadores de la misma red.
En este artículo no se pretende dar una descripción detallada y rigurosadel protocolo TCP/IP y lo que va alrededor de él. Simplemente se darán unas nociones básicas de manera informal, con la intención de que se pueda comprender un pequeño ejemplo de programación en C.
Está, por tanto, orientado a personas que tengan unos conocimientos básicos de C en Linux y deseen o necesiten comunicar dos programas en C que corren simultáneamente en dos ordenadores distintosconectados en red. El ejemplo propuesto puede servir como guía inicial que se pude complicar todo lo que se desee.
LOS SOCKETS
Una forma de conseguir que dos programas se transmitan datos, basada en el protocolo TCP/IP, es la programación de sockets. Un socket no es más que un "canal de comunicación" entre dos programas que corren sobre ordenadores distintos o incluso en el mismo ordenador.
Desde elpunto de vista de programación, un socket no es más que un "fichero" que se abre de una manera especial. Una vez abierto se pueden escribir y leer datos de él con las habituales funciones de read() y write() del lenguaje C. Hablaremos de todo esto con detalle más adelante.
Existen básicamente dos tipos de "canales de comunicación" o sockets, los orientados a conexión y los no orientados aconexión.
En el primer caso ambos programas deben conectarse entre ellos con un socket y hasta que no esté establecida correctamente la conexión, ninguno de los dos puede transmitir datos. Esta es la parte TCP del protocolo TCP/IP, y garantiza que todos los datos van a llegar de un programa al otro correctamente. Se utiliza cuando la información a transmitir es importante, no se puede perder ningún...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS