CENTRO DE ESTUDIOS NOVA - Cartagena Laboratorio de Software de Comunicaciones TEMA 1 FUNDAMENTOS DE SOCKETS TCP Y UDP

Tamaño: px
Comenzar la demostración a partir de la página:

Download "CENTRO DE ESTUDIOS NOVA - Cartagena Laboratorio de Software de Comunicaciones TEMA 1 FUNDAMENTOS DE SOCKETS TCP Y UDP"

Transcripción

1 TEMA 1 FUNDAMENTOS DE SOCKETS TCP Y UDP Concepto de UDP UDP son las siglas de Protocolo de Datagrama de Usuario (en inglés User Datagram Protocol) un protocolo sin conexión que, como TCP, funciona en redes IP. UDP/IP proporciona muy pocos servicios de recuperación de errores, ofreciendo en su lugar una manera directa de enviar y recibir datagramas a través una red IP. Se utiliza sobre todo cuando la velocidad es un factor importante en la transmisión de la información, por ejemplo, RealAudio utiliza el UDP. El FTP utiliza TCP/IP, mientras que TFTP utiliza UDP. TFTP son las siglas de Protocolo de Transferencia de Archivos Triviales (en inglés Trivial File Transfer Protocol), y puesto que es trivial, perder algo de información en la transferencia no es crucial. Concepto de TCP El Protocolo de Control de Transmisión (TCP en sus siglas en inglés, Transmission Control Protocol que fue creado entre los años por Vint Cerf y Robert Kahn) es uno de los protocolos fundamentales en Internet. Muchos programas dentro de una red de datos compuesta por ordenadores pueden usar TCP para crear conexiones entre ellos a través de las cuales enviarse datos. El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto (computación). TCP soporta muchas de las aplicaciones más populares de Internet, incluidas HTTP, SMTP y SSH. Servicio Orientado a la Conexión Se dice que un servicio de comunicación entre dos entidades es orientado a conexión cuando antes de iniciar la comunicación se verifican determinados datos (disponibilidad, alcance, etc.) entre estas entidades y se negocian unas credenciales para hacer esta conexión más segura y eficiente. Este tipo de conexiones suponen mayor carga de trabajo a una red (y tal vez retardo) pero aportan la eficiencia y fiabilidad necesaria a las comunicaciones que la requieran. Servicio No Orientado a la Conexión En telecomunicaciones, no orientado a la conexión significa una comunicación entre dos puntos finales de una red en los que un mensaje puede ser enviado desde un punto final a otro sin acuerdo previo. El dispositivo en un extremo de la comunicación transmite los datos al otro, sin tener que asegurarse de que el receptor esté disponible y listo para recibir los datos. El emisor simplemente envía un mensaje dirigido al receptor. Cuando se utiliza esta forma de comunicación son más frecuentes los problemas de transmisión que con los protocolos orientado a la conexión y puede ser necesario reenviar varias veces los datos. Los protocolos no orientados a la conexión son a menudo rechazados por los administradores de redes que Página 1 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

2 utilizan cortafuegos porque los paquetes maliciosos son más difíciles filtrar. Elprotocolo IP y el protocolo UDP son protocolos no orientados a la conexión, pero TCP es un protocolo orientado a la conexión. Los protocolos no orientados a la conexión son descritos generalmente como sin estado porque los puntos finales no guardan información para recordar una "conversación" de cambios de mensajes. La alternativa al enfoque no orientado a la conexión es utilizar protocolos orientados a la conexión, que son descritos a veces como con estado porque pueden seguir una conversación. Simplex Sólo permiten la transmisión en un sentido. Un ejemplo típico es el caso de la fibra óptica; en estos casos se puede recurrir a sistemas en anillo o con doble fibra para conseguir una comunicación completa. Aunque en la actualidad ya existe la posibilidad de enviar y recibir señal a través de una sola fibra óptica pero en diferentes longitudes de onda.una conexión semidúplex (a veces denominada una conexión alternativa o semi-dúplex) es una conexión en la que los datos fluyen en una u otra dirección, pero no las dos al mismo tiempo. Con este tipo de conexión, cada extremo de la conexión transmite uno después del otro. Este tipo de conexión hace posible tener una comunicación bidireccional utilizando toda la capacidad de la línea. Half Duplex En ocasiones encontramos sistemas que pueden transmitir en los dos sentidos, pero no de forma simultánea. Puede darse el caso de una comunicación por equipos de radio, si los equipos no son full dúplex, uno no podría transmitir (hablar) si la otra persona está también transmitiendo (hablando) porque su equipo estaría recibiendo (escuchando) en ese momento.en radiodifusión, se da por hecho que todo duplex ha de poder ser bidireccional y simultáneo, pues de esta manera, se puede realizar un programa de radio desde dos estudios de lugares diferentes. Full Duplex La mayoría de los sistemas y redes de comunicaciones modernos funcionan en modo dúplex permitiendo canales de envío y recepción simultáneos. Podemos conseguir esa simultaneidad de varias formas: Empleo de frecuencias separadas (multiplexación en frecuencia) Cables separados Nota: Por definición no deben existir colisiones en Ethernet en el modo <full-duplex> aunque inusualmente existen. Página 2 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

3 Conceptos del Protocolo TCP EL SERVIDOR Para proporcionar servicio debe disponer de: Dirección IP del servidor. Servicio que queremos crear / utilizar: Estos números son enteros normales y van de 1 a Los número bajos, desde 1 a 1023 están reservados para servicios habituales de los sistemas operativos (www, ftp, mail, ping, etc). El resto están a disposición del programador Página 3 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

4 Pasos a realizar: Apertura de un socket, mediante la función socket(). Esta función devuelve un descriptor de fichero normal, como puede devolverlo open(). La función socket() no hace absolutamente nada, salvo devolvernos y preparar un descriptor de fichero que el sistema posteriormente asociará a una conexión en red. Avisar al sistema operativo de que hemos abierto un socket y queremos que asocie nuestro programa a dicho socket. Se consigue mediante la función bind(). El sistema todavía no atenderá a las conexiones de clientes, simplemente anota que cuando empiece a hacerlo, tendrá que avisarnos a nosotros. Es en esta llamada cuando se debe indicar el número de servicio al que se quiere atender. Avisar al sistema de que comience a atender dicha conexión de red. Se consigue mediante la función listen(). A partir de este momento el sistema operativo anotará la conexión de cualquier cliente para pasárnosla cuando se lo pidamos. Si llegan clientes más rápido de lo que somos capaces de atenderlos, el sistema operativo hace una "cola" con ellos y nos los irá pasando según vayamos pidiéndolo. Pedir y aceptar las conexiones de clientes al sistema operativo. Para ello hacemos una llamada a la función accept(). Esta función le indica al sistema operativo que nos dé al siguiente cliente de la cola. Si no hay clientes se quedará bloqueada hasta que algún cliente se conecte. Escribir y recibir datos del cliente, por medio de las funciones write() y read(), que son exactamente las mismas que usamos para escribir o leer de un fichero. Obviamente, tanto cliente como servidor deben saber qué datos esperan recibir, qué datos deben enviar y en qué formato. Puedes ver cómo se pueden poner de acuerdo en estos mensajes en el apartado de mensajes. Cierre de la comunicación y del socket, por medio de la función close(), que es la misma que sirve para cerrar un fichero. EL CLIENTE Los pasos que debe seguir un programa cliente son los siguientes: Apertura de un socket, como el servidor, por medio de la función socket() Solicitar conexión con el servidor por medio de la función connect(). Dicha función quedará bloqueada hasta que el servidor acepte nuestra conexión o bien si no hay servidor en el sitio indicado, saldrá dando un error. En esta llamada se debe facilitar la dirección IP del servidor y el número de servicio que se desea. Escribir y recibir datos del servidor por medio de las funciones write() y read(). Cerrar la comunicación por medio de close(). Página 4 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

5 Funciones TCP sockfd = socket ( int dominio, int tipo, int protocolo ); sockfd Es el descriptor de socket devuelto. Luego se utilizará para conectarse, recibir conexiones, enviar y recibir datos, etc. Retorna un descriptor de socket, que es tipo int. Si hubo algún error, socket() retorna -1 y la variable global errno se establece con un valor que indica el error que se produjo ( ver man 3 perror). dominio El dominio de comunicación nos dice donde se encuentran los procesos que se van a intercomunicar. Si los procesos están en el mismo sistema, el dominio de comunicación será AF_UNIX, si los procesos están en distintos sistemas y estos se hallan unidos mediante una red TCP/IP, el dominio de comunicación será AF_INET. Cabe aclarar que existen otros dominios de comunicación. Los sockets no se han diseñado solamente para TCP/IP. La idea original fue que se usase la misma interfaz también para distintas familias de protocolos. En esta introducción solo trataremos el dominio AF_INET. Algunos dominios: AF_INET ( unidos mediante una red TCP/IP). AF_UNIX (en el mismo sistema). Otros dominios. Para este tutor siempre será AF_INET. tipo Podrá ser SOCK_STREAM o SOCK_DGRAM o SOCK_RAW. protocolo 0 (cero, selecciona el protocolo más apropiado). Página 5 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

6 int bind(int sockfd, struct sockaddr *my_addr, int addrlen) El socket se crea sin nombre, debemos asignarle uno para poder recibir conexiones. bind () se utiliza para darle un nombre al socket, osea una dirección IP y número de puerto del host local por donde escuchará, al especificar una IP del host local le estamos diciendo por cual interfaz física escuchará (el sistema puede tener varias interfaces ethernet, ppp, etc). Es necesario llamar a bind() cuando se está programando un servidor. Cuando se está programando un cliente generalmente no se utiliza esta función, el kernel le asignará al socket la dirección IP y número de puerto disponible al llamar a ciertas funciones, por ejemplo cuando llamamos a connect() para conectarnos con un sistema remoto. En el servidor es necesario llamar a bind() debido a que el número de puerto debe ser conocido para que los clientes puedan conectarse. Por ejemplo si estamos programando un servidor de telnet debemos llamar a bind() para asignarle al socket el puerto 23. En la aplicación cliente se puede llamar a bind() y asignarle un número de puerto, pero no es necesario porque nadie va a tratar ni podra conectarse con él. sockfd: Es el descriptor de socket devuelto por la función socket(). my_addr: Es un puntero a una estuctura sockaddr que contiene la IP del host local y el número de puerto que se va a asignar al socket.(mas abajo se detalla). addrlen: Debe ser establecido al tamaño de la estuctura sockaddr. sizeof(struct sockaddr). Ejemplo : int sockfd; struct sockaddr_in servaddr; sockfd = socket (AF_INET, SOCK_STREAM, 0); if (sockfd <= 0){ printf ("Error\n"); exit(1); bzero(&servaddr, sizeof(struct sockaddr_in)); servaddr.sin_family = AF_INET; servaddr.sin_port htons(puerto); servaddr.sin_addr.s_addr =htonl(inaddr_any); if (bind (sockfd,(struct sockaddr *)&servaddr, sizeof(struct sockaddr_in))<0){ printf ("Error\n"); exit(1); Página 6 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

7 Estructuras necesarias para la función bind. struct sockaddr{ unsigned short sa_family; // AF_* char sa_data[14]; // Direccion de protocolo. ; Almacena la dirección de protocolo para muchos tipos de protocolos. sa_family puede ser AF_INET, AF_UNIX u otros dominios sa_data contiene la dirección IP y número de puerto asignado al socket. struct in_addr{ unsigned long int s_addr; // Dirección local a la que se asigna el socket struct sockaddr_in { short int sin_family; // AF_INET unsigned short sin_port; // Numero de puerto. struct in_addr sin_addr; // Dirección IP. unsigned char sin_zero[8]; // Relleno. ; Se creó la esctuctura sockaddr_in para el caso de internet, para poder referenciar los elementos de forma más fácil. sin_family sera AF_INET. No debe convertirse a network byte order porque es solo usado por el kernel y no es enviado por la red. sin_port (número de puerto) deberá estar en network byte order, osea habrá que usar htons(). sin_addr (dirección IP) deberá estar en network byte order, osea habrá que usar htons(). sin_zero se utiliza para rellenar la estructura a la longuitud de sockaddr, debe estar inicializada a cero con la función bzero(). Ver la página del manual Los punteros a la estructura sockaddr_in deben ser precedidos con un cast tipo * struct sockaddr antes de pasarlos como parámetros a funciones. int sockfd; struct sockaddr_in servaddr; sockfd = socket (AF_INET, SOCK_STREAM, 0); if (sockfd <= 0){ printf ("Error\n"); exit(1); bzero(&servaddr, sizeof(struct sockaddr_in)); servaddr.sin_family = AF_INET; servaddr.sin_port htons(puerto); servaddr.sin_addr.s_addr= =inet_addr( ); if (bind(sockfd, (struct sockaddr *)& servaddr, sizeof(struct sockaddr_in))<0){ printf ("Error\n"); exit(1); Página 7 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

8 Funciones utiles para programación con socket Ordenación de bytes Host byte order (little-endian): Byte menos significativo primero Network byte order (big-endian): Byte más significativo primero Todos los campos de socketaddr_in han de almacenarse en Network byte order Network Byte Order & Host Byte Order Cuando se estan enviando datos por algun tipo de red, estos deben de viajar en un orden tal, que puedan ser leidos, por lo regular se convierten al tipo Network Byte Order (Orden de Byte de Red), y cuando esos datos se procesan en un ordenador se deben de convertir a Host Byte Order (Orden de Byte de Red). Esto se puede hacer con funciones predefinidas de las API de Socket como son: htons() -> ``Nodo a variable corta de Red'' htonl() -> ``Nodo a variable larga de Red'' ntohs() -> ``Red a variable corta de Nodo'' ntohl() -> ``Red a variable larga de Nodo'' int inet_aton(const char *cp, struct in_addr *inp); Convierte la dirección de Internet cp desde la notación estándar de números y puntos a la representación binaria, y la guarda en la estructura a la que apunte inp. Devuelve no-cero si la dirección es válida, cero si no. struct sockaddr_in servaddr; inet_aton(" ", &servaddr.sin_addr); // almacena IP en servaddr in_addr_t inet_addr(const char *cp); La función inet_addr() convierte la dirección de Internet cp desde la notación de números y puntos a la de datos binarios en orden de bytes del ordenador local. Si la entrada no es válida, devuelve INADDR_NONE (usualmente -1). Ésta es una interfaz obsoleta a inet_aton, descrita anteriormente; es obsoleta porque -1 es una dirección válida ( ), e inet_aton porporciona una manera más clara para indicar que ha ocurrido un error. struct sockaddr_in servaddr; servaddr.sin_addr.s_addr = inet_addr(" "); Página 8 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

9 in_addr_t inet_network(const char *cp); La función inet_network() extrae el número de red en orden de bytes de red desde la dirección cp a la notación de números y puntos. Si la entrada es inválida, devuelve -1. char *inet_ntoa(struct in_addr in); La función inet_ntoa() convierte la dirección de Internet in dada en orden de bytes de red a una cadena de caracteres en la notación estándar de números y puntos. La cadena se devuelve en un búfer reservado estáticamente, que será sobreescrito en siguientes llamadas. // if added to the above inet_addr() code, this would print " ": char *s = inet_ntoa(destaddr.sin_addr); printf("dotted decimal address is %s\n", s); struct in_addr inet_makeaddr(int net, int host); La función inet_makeaddr() construye una dirección de Internet en orden de bytes de red combinando el número de red net con la dirección local host en la red net, ambas en orden de bytes de ordenador local. in_addr_t inet_lnaof(struct in_addr in); La función inet_lnaof() devuelve la parte del ordenador local de la dirección de Internet in. La dirección de ordenador local se devuelve en orden de bytes de ordenador local. in_addr_t inet_netof(struct in_addr in); La función inet_netof() devuelve la parte de número de red de la dirección de Internet in. El número de red se devuelve en orden de bytes de ordenador local. int listen ( int sockfd, int backlog) Se llama desde el servidor, habilita el socket para que pueda recibir conexiones. Solo se aplica a sockets tipo SOCK_STREAM. sockfd: Es el descriptor de socket devuelto por la función socket() que será utilizado para recibir conexiones. backlog: Es el número máximo de conexiones en la cola de entrada de conexiones. Las conexiones entrantes quedan en estado de espera en esta cola hasta que se aceptan. Página 9 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

10 int accept ( int sockfd, void *addr, int *addrlen) Se utiliza en el servidor, con un socket habilitado para recibir conexiones ( listen() ). Esta función retorna un nuevo descriptor de socket al recibir la conexión del cliente en el puerto configurado. La llamada a accept() no retornará hasta que se produce una conexión o es interrumpida por una señal. sockfd :Es el descriptor de socket habilitado para recibir conexiones. addr :Puntero a una estructura sockadd_in. Aquí se almacenará informacion de la conexión entrante. Se utiliza para determinar que host está llamando y desde qué número de puerto. addrlen :Debe ser establecido al tamaño de la estuctura sockaddr. struct sockaddr_in remote_addr; int addrlen; new_sockfd = accept ( sockfd, &remote_addr, &addrlen); close ( sockfd) Finalizan la conexión del descriptor de socket. Despues de utilizar close, el socket queda desabilitado para realizar lecturas o escrituras. read (int sockfd, void *buff, int len) Devuelve longitud de lo leído si lectura OK y -1 si no. sockfd: descriptor de socket. buff: direccionamiento al búfer de almacenamiento de la información. Len: tamaño del búfer. Para su medición funciones sizeof() y strlen(). Usada por clientes y servidores. write (int sockfd, void *buff, int len) Devuelve longitud de lo escrito si escritura OK y -1 si no. sockfd: descriptor de socket. buff: direccionamiento al búfer de lectura de la información. Len: tamaño del búfer. Para su medición funciones sizeof() y strlen(). Usada por clientes y servidores. int connect(int sockfd, const struct sockaddr *serv_addr, int addrlen); La función connect solicita poder conectar el socket especificado por sockfd a un socket remoto cuya direccíon y puerto se especifica en serv_addr. Los parámetros son: Página 10 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

11 sockfd: Descriptor del socket creado con anterioridad. serv_addr: Estructura de datos donde se especifica la dirección y puerto con el que deseamos establecer la conexión. addrlen: Longitud de la estructura de datos anterior. La función devuelve el valor -1 si error o 0 si su llamada tiene éxito. Ejemplo Servidor TCP if ((listenfd = socket(af_inet,sock_stream,0))<= 0) { printf ("ERROR \n"); exit(1); servaddr.sin_family= AF_INET; servaddr.sin_addr.s_addr= htonl (INADDR_ANY); servaddr.sin_port=htons (SERVER_PORT); bzero(&servaddr, sizeof (servaddr)); if(bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)<0){ printf("error \n"); exit (1); listen (listenfd, LISTENQ); //Preparado para aceptar la entrada de los posibles clientes. clilen=sizeof(cliaddr); connfd =accept(listenfd, (struct_sockaddr *) &cliaddr, &clilen); //Se acepta el cliente. read (connfd, datos, strlen(datos)); //Se entiende que es lo primero que se hace. write (connfd, respuesta, strlen(respuesta)); // Resuelve close (connfd); close (listenfd). Ejemplo Cliente TCP if ((listenfd = socket(af_inet,sock_stream,0))<= 0) { printf ("ERROR \n"); exit(1); servaddr.sin_family= AF_INET; servaddr.sin_addr.s_addr= inet_addr (SERVIDOR); servaddr.sin_port=htons (SERVER_PORT); bzero(&servaddr, sizeof (servaddr)); clilen=sizeof(servaddr); connfd =connect(listenfd, (struct_sockaddr *) &servaddr, clilen); //Se inicia la conexión. write (listenfd, peticion, strlen(peticion)); // Se realiza petición read (listenfd respuesta strlen(respuesta)); //Se entiende que se recibe respuesta close (listenfd). Página 11 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

12 Características UDP El Protocolo de datagramas de usuario (UDP) es un estándar TCP/IP que está definido en RFC 768, "User Datagram Protocol (UDP)". Algunos programas utilizan UDP en lugar de TCP para el transporte de datos rápido, compacto y no confiable entre hosts TCP/IP. UDP proporciona un servicio de datagramas sin conexión que ofrece entrega de mejor esfuerzo, lo que significa que UDP no garantiza la entrega ni comprueba la secuencia de los datagramas. Un host de origen que necesita comunicación confiable debe utilizar TCP o un programa que proporcione sus propios servicios de secuencia y confirmación. Los mensajes UDP están encapsulados y se envían en datagramas IP, como se muestra en la siguiente ilustración. UDP y TCP En general, las diferencias en cómo entregan los datos UDP y TCP son similares a las diferencias entre una llamada telefónica y una tarjeta postal. TCP funciona como una llamada telefónica, ya que comprueba que el destino está disponible y preparado para la comunicación. UDP funciona como una tarjeta postal: los mensajes son pequeños y la entrega es probable, pero no siempre está garantizada. Normalmente, utilizan UDP los programas que transmiten pequeñas cantidades de datos a la vez o que tienen requisitos de tiempo real. En estas situaciones, las capacidades de carga pequeña y multidifusión de UDP (por ejemplo, un datagrama, muchos destinatarios) resultan más apropiadas que TCP. UDP es notablemente diferente de los servicios y características que proporciona TCP. En la siguiente tabla se comparan las diferencias en el modo de administrar la comunicación TCP/IP según se utilice UDP o TCP para el transporte de datos. UDP TCP Servicio sin conexión; no se establece una sesión entre los hosts. UDP no garantiza ni confirma la entrega, y no secuencia los datos. Servicio orientado a la conexión; se establece una sesión entre los hosts. TCP garantiza la entrega mediante el uso de confirmaciones y la entrega secuenciada de datos. Los programas que utilizan UDP son Los programas que utilizan TCP proporcionan la responsables de proporcionar la confiabilidad seguridad del transporte de datos confiable. necesaria para el transporte de datos. UDP es rápido, tiene requisitos de carga TCP es más lento, tiene requisitos de carga mayores y pequeños y puede admitir la comunicación sólo admite la comunicación punto a punto. punto a punto y de un punto a varios puntos. UDP y TCP utilizan puertos para identificar las comunicaciones para cada programa TCP/IP. Página 12 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

13 Recomendaciones de uso UDP/TCP UDP se utiliza: Comunicaciones breves, que no necesiten grandes requisitos de fiabilididad. Ej: DNS Comunicaciones con requisitos de tiempo: Tiempo real Video, sonido. Comunicaciones que requieren comunicaciones simultaneas entre 1 servidor y varios clientes Comunicaciones en las que la fiabilidad esta garantizada, como redes locales LAN. TCDP se utiliza: En general, Internet. Entornos con condicionantes de riesgo Transferencia de ficheros, excepción: TFTP. Comunicaciones largar, sin requisitos de tiempo real. Pasos necesarios para realizar una conexión UDP EL SERVIDOR Abrir un socket con la función socket() Asociar el socket a un puerto con bind() Leer mensaje con recvfrom(). Responder mensaje con sendto() EL CLIENTE Abrir un socket con socket() Enviar mensaje al servidor con sendto() Leer respuesta con recvfrom() Página 13 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

14 Funciones UDP sockfd = socket ( int dominio, int tipo, int protocolo ); (Ver funciones TCP. Unica diferencia en tipo, que debemos indicar SOCK_DGRAM) int recvfrom ( int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen ) sockfd : Descriptor socket por donde se recibirán los datos. buf : Puntero a un buffer donde se almacenarán los datos recibidos. len : Longitud del buffer buf. flags : Ver la página del manual de recv(). Normalmente 0 from : Puntero a una estructura sockaddr que contiene la dirección IP y número de puerto del host origen de los datos. fromlen : Debe ser inicializado al tamaño de struct sockaddr ( sizeof (struct sockaddr) ). Si no hay datos a recibir en el socket, la llamada a recvfrom() no retorna (bloquea) hasta que llegan datos, se puede establecer al socket como no bloqueante (ver: man 2 fcntl ) de manera que cuando no hay datos para recibir la función retorna -1 y establece la variable errno=ewouldblock. Más adelante se hablará de esto. recvfrom() retorna el numero de bytes recibidos, igual que recv(). int sendto(int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen) sockfd : Descriptor socket por donde se enviarán los datos. msg : Puntero a los datos a ser enviados. len : Longitud de los datos en bytes. flags : Leer : man 2 sendto. Normalmente 0. to : Puntero a una estructura sockaddr que contiene la dirección IP y número de puerto destino. tolen : Debe ser inicializado al tamaño de struct sockaddr ( sizeof (struct sockaddr) ). sendto() retorna el número de bytes enviados, el cual puede ser menor que len, igual que en send(). Página 14 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

15 Ejemplo UDP Servidor ECO #define MAXLINE 256 #define SERVER_PORT 3000 main ( ) { int sockfd; struct sockaddr_in, server_addr, cli_addr; int n; socklen_t len; char mess[maxline]; servaddr.sin_family= AF_INET; servaddr.sin_addr.s_addr= htonl (INADDR_ANY); servaddr.sin_port=htons (SERVER_PORT); bzero(&servaddr, sizeof (servaddr)); if ((listenfd = socket(af_inet,sock_dgram,0))<= 0) { printf ("ERROR \n"; exit(1); if ((bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr))<0) { printf ("ERROR \n"; exit(1); ; for ( ; ; ) { clilen=sizeof(cliaddr); n = recvfrom(listenfd, mess, MAXLINE, 0, (struct sockaddr *) &cliaddr, &clilen); sendto (listenfd, mess, n, 0, (struct sockaddr *) &cliaddr, len); ; close (listenfd). Página 15 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

16 Ejemplo UDP Cliente ECO #define MAXLINE 256 #define SERVER_PORT 3000 main (int argc, char* argv ) { int sockfd; struct sockaddr_in server_addr; int n; char sendline[maxline], recvline[maxline +1]; servaddr.sin_family= AF_INET; inet_pton (AF_INET, argv[1], &serveraddr.sin_addr.s_addr); servaddr.sin_port=htons (SERVER_PORT); bzero(&servaddr, sizeof (servaddr)); if ((sockfd = socket(af_inet,sock_dgram,0))<= 0) { printf ("ERROR \n"; exit(1); ; while (fgets (sendline, MAXLINE,stdin)!= NULL) { sendto (sockfd, sendline, MAXLINE, 0, (struct_sockaddr *) &serverddr, sizeof(serveraddr)); n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL); recvline [n]= \0 ; //Terminar texto. fputs (stdout, recvline, n+1); // Presentacion ; close (listenfd) int inet_pton(int af, const char *src, void *dst); inet_pton - Crea una estructura de dirección de red Esta función convierte la cadena de caracteres src en una estructura de dirección de red de la familia af, y copia la estructura de dirección de red a dst. Servidor con multiples clientes En TCP, el proceso consiste en crear múltiples procesos servidores hijos, individuales para cada uno de los clientes. En general, este proceso es muy ineficiente. Se deben duplicar pilas, recursos, etc. En UDP, el proceso es considerablemente más sencillo, además es más natural. No se duplican recursos y es mas eficiente. Página 16 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

17 Pérdida de datagramas Los errores en los sockets UDP que se producn de forma asíncrona (no temporizadis) no son detectados, para ello disponemos de una forma de controlarlos mediente el uso de la función connect. El funcionamiento de connect en UDP es distinto al de TCP ya que no envía ningún paquete de conexión SYN, lo que realiza es una configuración interna (local) del sistema y vuelve al funcionamiento de la aplicación. int connect(int sockfd, const struct sockaddr *serv_addr, int addrlen); Connect configura localmente, dirección y puerto del servidor. Se genera una nueva familia de sockets, los socket UDP conectados No se puede especificar nunca más las direcciones destino y puerto destino. Se utiliza write() o send(). No se utiliza recvfrom. Se utiliza recv() o read() Página 17 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

18 Ejemplo 1: Conexión Cliente Servidor. Envio de Mensaje de Bienvenida indicando ip del servidor en el cliente. SERVIDOR /* Estos son los ficheros de cabecera usuales */ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #define PORT 3550 /* El puerto que será abierto */ #define BACKLOG 2 /* El número de conexiones permitidas */ main() { int fd, fd2; /* los ficheros descriptores */ struct sockaddr_in server; /* para la información de la dirección del servidor */ struct sockaddr_in client; /* para la información de la dirección del cliente */ int sin_size; if ((fd=socket(af_inet, SOCK_STREAM, 0)) == -1 ) { printf("error en socket()\n"); exit(-1); server.sin_family = AF_INET; server.sin_port = htons(port); /*?Recuerdas a htons() de la sección "Conversiones"? =) */ server.sin_addr.s_addr = INADDR_ANY; /* INADDR_ANY coloca nuestra dirección IP automáticamente bzero(&(server.sin_zero),8); /* escribimos ceros en el reto de la estructura */ if(bind(fd,(struct sockaddr*)&server, sizeof(struct sockaddr))==-1) { printf("error en bind() \n"); exit(-1); if(listen(fd,backlog) == -1) { printf("error en listen()\n"); exit(-1); while(1) { sin_size=sizeof(struct sockaddr_in); if ((fd2 = accept(fd,(struct sockaddr *)&client, &sin_size))==-1) { printf("error en accept()\n"); exit(-1); printf("se obtuvo una conexión desde %s\n",inet_ntoa(client.sin_addr) ); /* mostrar la IP del cliente */ send(fd2,"bienvenido a mi servidor.\n",22,0); /* que envia el mensaje de bienvenida al cliente */ close(fd2); /* cierra fd2 */ Página 18 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

19 CLIENTE #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> /* netbd.h es necesitada por la estructura hostent ;-) */ #define PORT 3550 /* El Puerto Abierto del nodo remoto */ #define MAXDATASIZE 100 /* El número máximo de datos en bytes */ int main(int argc, char *argv[]) { int fd, numbytes; /* ficheros descriptores */ char buf[maxdatasize]; /* en donde es almacenará el texto recibido */ struct hostent *he; /* estructura que recibirá información sobre el nodo remoto */ struct sockaddr_in server; /* información sobre la dirección del servidor */ if (argc!=2) { /* esto es porque nuestro programa sólo necesitará Un argumento, (la IP) */ printf("uso: %s <Dirección IP>\n",argv[0]); exit(-1); if ((he=gethostbyname(argv[1]))==null){ /* llamada a gethostbyname() */ printf("gethostbyname() error\n"); exit(-1); if ((fd=socket(af_inet, SOCK_STREAM, 0))==-1){ /* llamada a socket() */ printf("socket() error\n"); exit(-1); server.sin_family = AF_INET; server.sin_port = htons(port); /* htons() es necesaria nuevamente ;-o */ server.sin_addr = *((struct in_addr *)he->h_addr); /*he->h_addr pasa la información de ``*he'' a "h_addr" bzero(&(server.sin_zero),8); if(connect(fd, (struct sockaddr *)&server, sizeof(struct sockaddr))==-1){ /* llamada a connect() */ printf("connect() error\n"); exit(-1); if ((numbytes=recv(fd,buf,maxdatasize,0)) == -1){ /* llamada a recv() */ printf("error en recv() \n"); exit(-1); buf[numbytes]='\0'; printf("mensaje del Servidor: %s\n",buf); /* muestra el mensaje de bienvenida del servidor =) */ close(fd); /* cerramos fd =) */ Página 19 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

20 Programa cliente - servidor mediante sockets en C que en la parte servidor me genera un numero aleatorio entre 1 y 100 y los clientes le van escribiendo numero y el server comprueba si es mayor, menor o han acertado... Cliente.c #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> int main() { int sockfd; int len; struct sockaddr_in address; int result; char numero; char respuesta ='1'; //Inicializamos a 1 para que entre en el while while(respuesta!= '0') { printf("escribe un número entre 1 y 100: "); scanf("%s",&numero); sockfd = socket(af_inet, SOCK_STREAM, 0); address.sin_family = AF_INET; address.sin_addr.s_addr = inet_addr(" "); address.sin_port = htons(9734); len = sizeof(address); result = connect(sockfd, (struct sockaddr *)&address, len); if(result == -1) { perror("oops: client3"); exit(1); write(sockfd, &numero, 1); //printf("el cliente envia: %c\n",numero); read(sockfd, &respuesta, 1); //printf("el cliente recibe: %c\n",respuesta); if (respuesta == '1') { printf("el número es mayor que %c\n", numero); if (respuesta == '2') { printf("el número es menor que %c\n", numero); close(sockfd); printf("has acertado!!! %c era el número!!!\n", numero); exit(0); Página 20 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

21 Servidor.c #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <math.h> int main() { int server_sockfd, client_sockfd; int server_len, client_len; struct sockaddr_in server_address; struct sockaddr_in client_address; server_sockfd = socket(af_inet, SOCK_STREAM, 0); server_address.sin_family = AF_INET; server_address.sin_addr.s_addr = htonl(inaddr_any); server_address.sin_port = htons(9734); server_len = sizeof(server_address); bind(server_sockfd, (struct sockaddr *)&server_address, server_len); int aleatorio; aleatorio = (1+rand()%100); listen(server_sockfd, 5); //Punto A while(1) { char numero; char respuesta; printf("servidor esperando peticiones...\n"); client_len = sizeof(client_address); client_sockfd = accept(server_sockfd,(struct sockaddr *)&client_address, &client_len); read(client_sockfd, &numero, 1); //1 un numero de 1 cifra, 2 de 2 cifras int numeroacomp = atoi(&numero); if(aleatorio > numeroacomp) { respuesta = '1'; //Si retorna 1 es que el valor es menor al número del cliente else{ if(aleatorio < numeroacomp){ respuesta = '2'; //Si retorna 2 es que el valor es mayor al núm del cliente else{ respuesta = '0'; //Si retorna 0 es que el valor es el correcto. exit(0); write(client_sockfd, &respuesta, 1); close(client_sockfd); Página 21 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

22 #include <sys/socket.h> #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <unistd.h> #include <sys/select.h> #define LISTENQ 5 // Tamaño de lista de clientes (4 también sería válido) #define MAXCLIENT 5 // Número máximo de clientes #define MSG_SIZE 1024 //Tamaño máximo del mensaje de texto #define SERVER_PORT 3000 int main (int argc, char **argv) { int i, maxi, maxfd, listenfd, connfd, sockfd, nready; int client[maxclient]; ssize_t n; fd_set rset, allset; char msg[msg_size]; socklen_t clilen; struct sockaddr_in cliaddr, servaddr; if ((listenfd = socket(af_inet,sock_stream,0))<= 0) { printf ("ERROR \n"; exit(1); servaddr.sin_family= AF_INET; servaddr.sin_addr.s_addr=htonl(inaddr_any); servaddr.sin_port=htons(server_port); bzero(&servaddr, sizeof (servaddr)); if(bind(listenfd, (struct sockaddr *)&servaddr, sizeof(struct sockaddr_in)<0) { printf("error \n"); exit (1); listen (listenfd, LISTENQ); //Preparado para aceptar la entrada de 5 clientes maxfd=listenfd; maxi=-1; for (i=0; i<max_client;i++) //Inicialización del array de clientes client[i]=-1; FD_ZERO(&allset); //Inicialización de los conjuntos de descriptores FD_ZERO(&rset); FD_SET(listenfd,&allset); for(;;){ rset=allset; nready=select (maxfd+1, &rset, NULL,NULL,NULL); //Bloqueo en espera de entradas if ( FD_ISSET(listenfd, &rset){ //CLIENTE NUEVO clilen=sizeof(cliaddr); connfd =accept(listenfd, (struct_sockaddr *) &cliaddr, &clilen); //Se acepta el cliente for (i=0; i<max_client; i++) //Actualización del array if (client[i]<0) { client[i]=connfd; break; FD_SET(connfd,&allset); //Actualización del conjunto de descriptores if (connfd > maxfd) //Actualización de variables maxfd=connfd; if (i>maxi) maxi=i; Página 22 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

23 if (--nready<=0) continue; //Previsión para más de una interrupción /* ESPACIO RESERVADO PARA EL PROCESADO DEL SERVIDOR*/ //Del bucle principal //Del main. Otras Estructuras de Interes struct hostent *gethostbyname(const char *name); struct hostent { char *h_name; /* official name of host */ char **h_aliases; /* alias list */ int h_addrtype; /* host address type */ int h_length; /* length of address */ char **h_addr_list; /* list of addresses */ struct hostent *hent; hent = gethostbyname(" Página 23 de 23 Tema 1 Fundamentos de Sockets TCP y UDP Telf.:

Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP. Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011

Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP. Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011 Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011 Introducción Aplicaciones Distribuidas Su funcionalidad se distribuye

Más detalles

Estructuras y funciones de programación de sockets.

Estructuras y funciones de programación de sockets. Estructuras y funciones de programación de sockets. Introducción. Autor: Enrique Bonet En estos apuntes se incluye una breve descripción de las estructuras y funciones cuyo uso puede ser necesario para

Más detalles

-> Todo socket viene definido por dos características fundamentales:

-> Todo socket viene definido por dos características fundamentales: LOS SOCKETS. Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando estos procesos

Más detalles

Boletín 7- Sockets. Departamento de Lenguajes y Sistemas Informáticos

Boletín 7- Sockets. Departamento de Lenguajes y Sistemas Informáticos Boletín 7- Sockets Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción. 2. Tipos de sockets. 3. socket() 4. bind() 5. listen() 6. accept() 7. connect() 8. send()/ ()/recv(). 9. Funciones

Más detalles

BOLETIN 8 INDICE. ordenación de bytes. conversión de nombre y direcciones.

BOLETIN 8 INDICE. ordenación de bytes. conversión de nombre y direcciones. Sockets BOLETIN 8 INDICE 1. Introducción. 2. Tipos de sockets. 3. socket() 4. bind() 5. listen() 6. accept() 7. connect() 8. send()/recv(). 1. Funciones de ordenación de bytes 2. Funciones de conversión

Más detalles

Estructuras y funciones de programación de sockets.

Estructuras y funciones de programación de sockets. Estructuras y funciones de programación de sockets. Introducción. En estos apuntes se incluye una breve descripción de las estructuras y funciones cuyo uso puede ser necesario para el desarrollo de las

Más detalles

Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw

Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw Qué es un socket? Es una interfaz de entrada salida de datos que permite la intercomunicación entre procesos. Los procesos pueden estar ejecutándose en el mismo o en distintos sistemas, unidos mediante

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Facultad de Ingeniería

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Facultad de Ingeniería UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Arquitecturas Cliente/Servidor Sockets en C Alumnos: Arellano Santiago Víctor Manuel Girón Capistrán Aldo Iván Guerrero Ramirez Eduardo Daniel

Más detalles

SOCKETS BASADOS EN CONEXIÓN (SOCK_STREAM)

SOCKETS BASADOS EN CONEXIÓN (SOCK_STREAM) RESUMEN - Servicios UNIX para Sockets SII Curso 2017/2018 SOCKETS BASADOS EN CONEXIÓN (SOCK_STREAM) int socket(int dominio, int tipo, int protocolo); Devuelve el descriptor de fichero para acceder al socket

Más detalles

PROGRAMACIÓN CON SOCKETS

PROGRAMACIÓN CON SOCKETS UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA PROGRAMACIÓN CON SOCKETS Celeste Campo Carlos García Rubio {celeste,cgr}@it.uc3m.es PROGRAMACIÓN CON SOCKETS Pág. 1 1. Introducción.

Más detalles

Analista Universtiario en Sistemas. Sistemas Operativos. IPC - Sockets SOCKETS

Analista Universtiario en Sistemas. Sistemas Operativos. IPC - Sockets SOCKETS SOCKETS Introducción Permiten la comunicación entre dos o más procesos ejecutando en un mismo equipo o equipos independientes La comunicación que posibilitan es full-duplex (bi-direccional) Sigue el modelo

Más detalles

Diseño de aplicaciones distribuidas ÍNDICE

Diseño de aplicaciones distribuidas ÍNDICE Aplicaciones Distribuidas (s) Aplicaciones Distribuidas (s) TCP TCP Protocolos de Protocolos de Transporte Transporte UDP UDP STREAM STREAM (TCP) (TCP) SOCKET SOCKET Etapas en la Creación Etapas en la

Más detalles

COMUNICACIÓN Sistemas Distribuidos

COMUNICACIÓN Sistemas Distribuidos COMUNICACIÓN Sistemas Distribuidos Alvaro Ospina Sanjuan Universidad Pontificia Bolivariana Medellín 2010 Agenda Comunicación centralizada y distribuida Protocolos con capas Modelo cliente servidor Sockets

Más detalles

Adaptación de aplicaciones a IPv6

Adaptación de aplicaciones a IPv6 Adaptación de aplicaciones a IPv6 extensión de la interfaz de sockets Eva M. Castro ecastro@dit.upm.es Tutorial IPv6 -Adaptación de aplicaciones a IPv6 1 Contenido * Introducción Modelo de sockets BSD

Más detalles

Programación Básica de Sockets en Unix para Novatos

Programación Básica de Sockets en Unix para Novatos Tabla de contenidos BracaMan Introducción...3 Diferentes tipos de sockets en Internet...3 Estructuras...3 Conversiones....5 Direcciones IP...5 Funciónes Importantes...6 Algunas palabras sobre dns...14

Más detalles

Mecanismos IPC: sockets

Mecanismos IPC: sockets Mecanismos IPC: sockets Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Sockets Los sockets son una abstracción lógica que permiten la comunicación bidireccional

Más detalles

Práctica 2 Programación de Aplicaciones Distribuidas: Sockets TCP. Laboratorio de Comunicación de Datos ITT Telemática 26 de Septiembre 2011

Práctica 2 Programación de Aplicaciones Distribuidas: Sockets TCP. Laboratorio de Comunicación de Datos ITT Telemática 26 de Septiembre 2011 Práctica 2 Programación de Aplicaciones Distribuidas: Sockets TCP Laboratorio de Comunicación de Datos ITT Telemática 26 de Septiembre 2011 Introducción Aplicaciones Orientadas a Conexión TCP:Servicio

Más detalles

Tema 3: COMUNICACIÓN ENTRE PROCESOS

Tema 3: COMUNICACIÓN ENTRE PROCESOS Tema 3: COMUNICACIÓN ENTRE PROCESOS E. U. Informática en Segovia Departamento de Informática Universidad de Valladolid 1 Introducción Estudia las comunicaciones punto a punto entre los lados de un enlace

Más detalles

Introducción a la programación con sockets en C

Introducción a la programación con sockets en C Introducción a la programación con sockets en C Enrique Bonet Departamento de Informática Universidad de Valencia Índice Introducción Socket Creación de un socket Cierre de un socket Asociación de un socket

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Sockets Sistemas Distribuidos Sockets Aparecieron en 1981 en UNIX BSD 4.2 Intento de incluir TCP/IP en UNIX. Diseño independiente del protocolo de comunicación. Un socket es punto final de comunicación

Más detalles

Redes de Computadores Nivel de Aplicación: Programación con sockets I

Redes de Computadores Nivel de Aplicación: Programación con sockets I Redes de Computadores Nivel de Aplicación: Programación con sockets I Área de Ingeniería Telemática Dpto. Automática y Computación http://www.tlm.unavarra.es/ En clases anteriores... El nivel de aplicación

Más detalles

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA MANUAL DE SOCKETS EN C TABLA DE CONTENIDOS Introducción.. 4 Sockets en C.. 7 2.1 Conceptos Básicos..

Más detalles

Introducción de Sockets en C.

Introducción de Sockets en C. PRÁCTICA 2: Introducción de Sockets en C. 1 La Interfaz Socket es una API para redes TCP/IP que se compone de funciones o rutinas. Originalmente se construyó a principios de los 80 para el sistema operativo

Más detalles

Sistemas de Transportes de Datos (STD) Tema III: UDP y TCP (Entrega 4) Grupo de Aplicaciones Telemáticas. Grupo de Aplicaciones Telemáticas

Sistemas de Transportes de Datos (STD) Tema III: UDP y TCP (Entrega 4) Grupo de Aplicaciones Telemáticas. Grupo de Aplicaciones Telemáticas Sockets Abstracción para las operaciones de E/S a través de la red. Generalización de mecanismos de acceso a ficheros para suministrar un punto a través del cual realizar las comunicaciones. : Crear un

Más detalles

Migrando aplicaciones a IPv6

Migrando aplicaciones a IPv6 Migrando aplicaciones a Fundamentos técnico: DualStack y Socket.h Alonso Sandoval A. Hernán Vargas L. Universidad Técnica Federico Santa María asandova@alumnos.inf.utfsm.cl, hvargas@alumnos.inf.utfsm.cl

Más detalles

Programación con sockets

Programación con sockets Programación con sockets Internetworking with TCP/IP Client/Server Programming and Applications: Linux/POSIX Sockets Version Douglas E. Comer David L. Stevens Capítulos: 2, 5, 7 Grupo de Sistemas y Comunicaciones

Más detalles

Interfaz de Socket. Agustín J. González ELO309 ELO309 1

Interfaz de Socket. Agustín J. González ELO309 ELO309 1 Interfaz de Socket Agustín J. González ELO309 ELO309 1 Introducción Cómo las aplicaciones se comunican con la familia de protocolos de software y así logran comunicación con aplicaciones remotas? La interfaz

Más detalles

Arquitecturas Cliente/Servidor

Arquitecturas Cliente/Servidor Arquitecturas Cliente/Servidor Integrantes: Arellano Santiago Víctor Manuel Girón Capistrán Aldo Iván Guerrero Ramirez Eduardo Daniel Rosas Peña Ramiro SOCKETS EN C. LLAMADAS PARA EL MANEJO DE SOCKETS

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 7 : Comunicación mediante sockets Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Los sockets (también

Más detalles

PRÁCTICA 4 PASO DE MENSAJES

PRÁCTICA 4 PASO DE MENSAJES PRÁCTICA 4 PASO DE MENSAJES Introducción Cuando los procesos interactúan unos con otros pueden necesitar intercambiar información. Uno de los métodos posibles para conseguir esto es el paso de mensajes.

Más detalles

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM) s s Comunicación punto-a-punto entre procesos Los s son los extremos de la comunicación Diferentes dominios UNIX: Entre procesos de un mismo equipo Internet: Entre procesos de diferentes equipos (TCP/IP)

Más detalles

Tema 4 Sockets: Un interfaz con TCP/IP

Tema 4 Sockets: Un interfaz con TCP/IP 1 Tema 4 Sockets: Un interfaz con TCP/IP Capítulos: Introducción. Conceptos básicos. Dirección de un socket. Llamadas básicas de los sockets. Diferencias entre BSD-Sockets y WinSockets. Asignación de puertos

Más detalles

ARQUITECTURA DE REDES Laboratorio PRÁCTICA 2: MANUAL DE SOCKETS EN C. Grado en Ingeniería Informática Curso 2014/15

ARQUITECTURA DE REDES Laboratorio PRÁCTICA 2: MANUAL DE SOCKETS EN C. Grado en Ingeniería Informática Curso 2014/15 ARQUITECTURA DE REDES Laboratorio PRÁCTICA 2: MANUAL DE SOCKETS EN C Grado en Ingeniería Informática Curso 2014/15 ÍNDICE 1. INTRODUCCIÓN.. 3 1.1 La familia de protocolos TCP/IP. 3 1.2 Nivel de red (IP)..

Más detalles

Sistemas Distribuidos. Sockets

Sistemas Distribuidos. Sockets Sistemas Distribuidos Sockets Sockets Aparecieron en 1981 en UNIX BSD 4.2 Intento de incluir TCP/IP en UNIX. Diseño independiente del protocolo de comunicación. Un socket es punto final de comunicación

Más detalles

Ingeniería Técnica de Telecomunicación, esp. Telemática Universidad de Jaén

Ingeniería Técnica de Telecomunicación, esp. Telemática Universidad de Jaén Contenido. Introducción Primitivas Sockets orientadas a conexión (TCP) Primitivas orientadas a no conexión (UDP) Programación con Sockets en Internet Funciones sockets Funciones auxiliares 1 Bibliografía.

Más detalles

Clase de Sockets en lenguaje C. Prof. Ricardo González

Clase de Sockets en lenguaje C. Prof. Ricardo González Clase de Sockets en lenguaje C Prof. Ricardo González 1 Modelo de Programación Cliente-Servidor Cliente: un programa que envía peticiones. Servidor: un programa que ofrece un servicio que satisface peticiones

Más detalles

SOCKETS en Linux. Lic. Leonardo de - Matteis. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011

SOCKETS en Linux. Lic. Leonardo de - Matteis. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011 Introducción al uso de SOCKETS en Linux Lic. Leonardo de - Matteis Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011 Interfaz de programación de aplicaciones NAPI

Más detalles

Características de un lenguaje ideal para robótica

Características de un lenguaje ideal para robótica COMUNICACIÓN MEDIANTE SOCKETS Enrique Ortega Edrodoso Ingeniería Técnica de Informática de Gestión Introducción Los vehículos autoguiados comerciales disponibles en la actualidad tienen una serie de inconvenientes

Más detalles

Tema 4: Sockets: Un interfaz con TCP/IP

Tema 4: Sockets: Un interfaz con TCP/IP Tema 4: Sockets: Un interfaz con TCP/IP Introducción. Conceptos básicos. Dirección de un socket. Llamadas básicas de los sockets. Diferencias entre BSD-Sockets y WinSockets. Asignación de puertos a procesos.

Más detalles

Desarrollo de Aplicativos con winsockets

Desarrollo de Aplicativos con winsockets Seminario de Redes de Computadoras 66.48 Desarrollo de Aplicativos con winsockets Docentes: Ing. Marcelo Utard Ing. Pablo Ronco Alumnos: Baños, Germán Gámez, Pablo Rabino, Juan Pablo Salas, Federico Introducción

Más detalles

CENTRO DE ESTUDIOS NOVA - Cartagena Laboratorio de Software de Comunicaciones Ejercicios de Examenes

CENTRO DE ESTUDIOS NOVA - Cartagena Laboratorio de Software de Comunicaciones Ejercicios de Examenes Página 1 de 120 Ejercicios deexamenes Telf.: 868973838-622373838 JUNIO 2003 Se desea desarrollar un servidor como el de la práctica 3 de LSC (Chat) pero sobre conexiones fiables. Por ello, deberá ofrecer:

Más detalles

Sockets Básicos. Sockets Básicos

Sockets Básicos. Sockets Básicos Sockets Básicos Pedro Merino Gómez Jesus Martínez Cruz Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga Sockets Básicos Temas a tratar... APIS para acceso a TCP/IP El socket como descriptor

Más detalles

ARQUITECTURA DE REDES Laboratorio

ARQUITECTURA DE REDES Laboratorio 1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 2: Ejercicios de aplicación de Sockets en C 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados

Más detalles

Sistema Cliente Servidor Con Sockets

Sistema Cliente Servidor Con Sockets Sistema Cliente Servidor Con Sockets Rafael Benedicto Tovar Antonio Soler Muñoz 0 Índice 1. Resumen del proyecto 2 Introducción teórica 2.1 - Qué es un socket? 2.2 - Dominios de comunicación 2.3 - Tipos

Más detalles

Sockets Básicos. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. Temas a tratar...

Sockets Básicos. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. Temas a tratar... Sockets Básicos Pedro Merino Gómez Jesus Martínez Cruz Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga Temas a tratar... Sockets Básicos El como descriptor para E/S Funciones básicas

Más detalles

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX DESARROLLO DE APLICACIONES DISTRIBUIDAS PRÁCTICAS CURSO 2002-2003 SOCKETS en UNIX 1. Los SOCKETS en OSI/ISO - Como ya conocéis, el modelo OSI/ISO estructura los diferentes elementos que conforman una red

Más detalles

Contenido. Primera Parte: Sockets. Segunda Parte: Shellcodes

Contenido. Primera Parte: Sockets. Segunda Parte: Shellcodes Contenido Primera Parte: Sockets Segunda Parte: Shellcodes Primera Parte # echo _Sockets_ Por qué saber sobre sockets? Para construir cualquier aplicación de red W W W FTP P2P Pre-requisitos TCP / IP básico

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN CON SOCKETS. Celeste Campo Carlos García Rubio

INTRODUCCIÓN A LA PROGRAMACIÓN CON SOCKETS. Celeste Campo Carlos García Rubio INTRODUCCIÓN A LA PROGRAMACIÓN CON SOCKETS Celeste Campo (celeste@it.uc3m.es) Carlos García Rubio (cgr@it.uc3m.es) PROGRAMACIÓN CON SOCKETS Pág. 1 ÍNDICE 1. Introducción. 2. API de sockets: Llamadas al

Más detalles

Comunicación entre procesos (BSD) CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR

Comunicación entre procesos (BSD) CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR Comunicación entre procesos (BSD) CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR Mecanismos IPC del sistema 4.3BSD La interfaz de comunicación entre procesos

Más detalles

Sockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar

Sockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar Sockets tipo UNIX MSc. Ivan A. Escobar Creación socket: socket() int socket(familia, tipo, protocolo) Regresa un valor entero Parecido descriptor de archivos: descriptor socket sockfd int familia familia

Más detalles

Laboratorio de Sistemas Operativos

Laboratorio de Sistemas Operativos Laboratorio de Sistemas Operativos Juan Antonio Álvarez, Toñi Reina, David Ruiz, Antonio Tallón, Pablo Neira, José Ángel Bernal y Sergio Segura Boletín 8: Mecanismo de IPC de Berkeley. Sockets Curso 2006/07

Más detalles

Servicios de Internet

Servicios de Internet Servicios de Internet Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios 3º Ingeniería de Telecomunicación 1 Temario 1. Introducción 2. Arquitecturas,

Más detalles

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet Sockets (UDP) Tema 2.- Nivel de aplicación en Internet Dr. Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Sockets y UDP UDP: no hay conexión entre cliente y servidor»

Más detalles

Problemas de Redes de Computadores. Conjunto de problemas 1

Problemas de Redes de Computadores. Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,

Más detalles

CENTRO DE ESTUDIOS NOVA - Cartagena Laboratorio de Software de Comunicaciones TEMA 2 MULTIPLEXACIÓN E/S FUNCIÓN SELECT

CENTRO DE ESTUDIOS NOVA - Cartagena Laboratorio de Software de Comunicaciones TEMA 2 MULTIPLEXACIÓN E/S FUNCIÓN SELECT TEMA 2 MULTIPLEXACIÓN E/S FUNCIÓN SELECT Definición de Multiplexación La Multiplexacion de E/S se define como la capacidad de indicar al Kernel, la atención a mas de una entrada y salida de forma simultanea.

Más detalles

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Preguntas cortas Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde

Más detalles

UDP Tema 3.- Nivel de transporte en Internet

UDP Tema 3.- Nivel de transporte en Internet UDP Tema 3.- Nivel de transporte en Internet Dr. Daniel Morató Redes de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material adaptado del libro Com puter Networking: A Top Down Approach

Más detalles

Introducción a Sockets en Linux

Introducción a Sockets en Linux Introducción a Sockets en Linux Horacio Goetendía Bonilla 6 de Enero de 2003 Índice 1. Conceptos 2 1.1. Socket............................... 2 2. Sockets en Unix standar 2 2.1. Namespace (int dominio)(dominio

Más detalles

Manejo de sockets IPv6

Manejo de sockets IPv6 Universidad Técnica Federico Santa María INF-354 Taller de Redes de Computadores Manejo de sockets IPv6 Autores: Alonso Sandoval Hernán Vargas Profesor: Javier Cañas 21 de noviembre de 2014 Índice 1. Resumen

Más detalles

Arquitectura de Redes 1: Práctica 1. Javier Ramos José Luis García Dorado Germán Retamosa

Arquitectura de Redes 1: Práctica 1. Javier Ramos José Luis García Dorado Germán Retamosa Arquitectura de Redes 1: Práctica 1 Javier Ramos José Luis García Dorado Germán Retamosa Inicio: 2 octubre (grupos L). Práctica 1 3 octubre (grupo M). Entrega: 29(L) / 30 (M) de octubre antes de las 23:55

Más detalles

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet Sockets (TCP) Tema 2- Nivel de aplicación en Internet Dr Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material parcialmente adaptado del libro Computer Networking:

Más detalles

Portando aplicaciones a IPv6

Portando aplicaciones a IPv6 Portando aplicaciones a Eva M. Castro eva@gsyc.escet.urjc.es Grupo de Sistemas y Comunicaciones (GSyC( GSyC) Departamento de Informática, Estadística y Telemática (DIET) Universidad Rey Juan Carlos (URJC)

Más detalles

SISTEMAS DE COMUNICACIONES DE DATOS

SISTEMAS DE COMUNICACIONES DE DATOS SISTEMAS DE COMUNICACIONES DE DATOS Técnicas Digitales III Ing. Gustavo Nudelman 2012 Fundamentos de Networking Subtitulo o nombre del capitulo Capitulo 1 Universidad Tecnológica Nacional Definiciones

Más detalles

TEMA 2 Técnicas básicas de construcción de aplicaciones distribuidas. Universidad de Oviedo / Dpto. de Informática

TEMA 2 Técnicas básicas de construcción de aplicaciones distribuidas. Universidad de Oviedo / Dpto. de Informática TEMA 2 Técnicas básicas de construcción de aplicaciones distribuidas Lección 2 Modelos de aplicaciones distribuidas Modelos de aplicaciones distribuidas Una aplicación distribuida sería una pieza de software

Más detalles

Los sockets de Unix. Dr. Roberto Gómez Cárdenas ITESM-CEM. Dr. Roberto Gomez C. Diapo. No.

Los sockets de Unix. Dr. Roberto Gómez Cárdenas ITESM-CEM.  Dr. Roberto Gomez C. Diapo. No. Los sockets de Unix Emisor Receptor Dr. Roberto Gómez Cárdenas ITESM-CEM rogomez@itesm.mx http//homepage.cem.itesm.mx/rogomez Dr. Roberto Gomez C. Diapo. No. 1 La comunicación - Comunicación ocurre a través

Más detalles

Servicios de Internet

Servicios de Internet Servicios de Internet Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de es, Sistemas y Servicios 3º Ingeniería de Telecomunicación Temario 1. Introducción 2. Arquitecturas, protocolos

Más detalles

Introducción a Sistemas Operativos: La red

Introducción a Sistemas Operativos: La red Introducción a Sistemas Operativos: La red Clips xxx Fr ancisco J Ballesteros 1. Sockets La red no existía cuando hicieron UNIX. Cuando posteriormente las máquinas empezaron a erconectarse (antes de la

Más detalles

Introducción a las Redes de Computadoras

Introducción a las Redes de Computadoras Introducción a las Redes de Computadoras Capitulo 2 Capa de Aplicación Nota acerca de las transparencias del curso: Estas transparencias están basadas en el sitio web que acompaña el libro, y han sido

Más detalles

Introducción a las Redes de Computadoras. Capa de aplicación. Programación con Sockets. Capitulo 2 Capa de Aplicación

Introducción a las Redes de Computadoras. Capa de aplicación. Programación con Sockets. Capitulo 2 Capa de Aplicación Introducción a las Redes de Computadoras Capitulo 2 Capa de Aplicación Nota acerca de las transparencias del curso: Estas transparencias están basadas en el sitio web que acompaña el libro, y han sido

Más detalles

ADMINISTRACIÓN GENERAL DE TECNOLOGÍA DE LA INFORMACIÓN ADMINISTRACIÓN CENTRAL DE DESARROLLO Y MANTENIMIENTO DE APLICACIONES

ADMINISTRACIÓN GENERAL DE TECNOLOGÍA DE LA INFORMACIÓN ADMINISTRACIÓN CENTRAL DE DESARROLLO Y MANTENIMIENTO DE APLICACIONES ADMINISTRACIÓN GENERAL DE TECNOLOGÍA DE LA INFORMACIÓN ADMINISTRACIÓN CENTRAL DE DESARROLLO Y MANTENIMIENTO DE APLICACIONES SISTEMA DE AUTOMATIZACIÓN ADUANERA INTEGRAL (S. A. A. I.) PROTOCOLOS DE COMUNICACIÓN

Más detalles

Programación en red sobre TCP/IP Interface sockets

Programación en red sobre TCP/IP Interface sockets Programación en red sobre TCP/IP Interface sockets Teresa Monreal y Pablo Ibáñez Area de Arquitectura y Tecnología de Computadores Departamento de Informática e Ingeniería de Sistemas 1 Indice Introducción.

Más detalles

Administración de redes en GNU/Linux

Administración de redes en GNU/Linux Administración de redes en GNU/Linux La configuración de una red en UNIX/Linux es en cierta medida más compleja que en sistemas Microsoft. Sin embargo para numerosos administradores tiene un mayor grado

Más detalles

Programación C/S Básica

Programación C/S Básica 1 de 21 Programación C/S Básica Enrique Alba Torres Universidad de Málaga (UMA) 2 de 21 Los servicios Internet se ofertan como sistemas Cliente/Servidor Los protocolos de base suelen ser peer-to-peer (igual-a-igual)

Más detalles

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet. Sockets La biblioteca estándar de clases de Java nos proporciona todo lo que necesitamos para utilizar sockets en nuestras aplicaciones en el paquete java.net, por lo que tendremos que añadir la siguiente

Más detalles

Tema 2. Comunicación entre procesos

Tema 2. Comunicación entre procesos Tema 2. Comunicación entre procesos SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs octubre 2008 FJRP, FMBR 2008/09 ccia SCS 2.1 Requisitos y alternativas Sistemas distribuidos

Más detalles

Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros.

Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros. Comunicaciones Comunicaciones: Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros. Terminología: Trama: unidad de información a transmitir Medio:

Más detalles

Introducción (I) La capa de transporte en Internet: TCP es: UDP es:

Introducción (I) La capa de transporte en Internet: TCP es: UDP es: Introducción (I) La capa de transporte en Internet: Esta formada por un gran número de protocolos distintos. Los más utilizados son TCP y UDP. TCP es: Fiable. Orientado a conexión. Con control de flujo.

Más detalles

PRÁCTICA 2: Cliente-servidor UDP

PRÁCTICA 2: Cliente-servidor UDP PRÁCTICA 2: Cliente-servidor UDP El objetivo de esta práctica es la familiarización con aplicaciones elementales que usan los servicios de transporte de los sockets UDP. A lo largo de la práctica se realizarán

Más detalles

S C TP: Una alternativa al protocolo TC P s obre Linux. Ing. Isaac Fernández Baca Peña

S C TP: Una alternativa al protocolo TC P s obre Linux. Ing. Isaac Fernández Baca Peña S C TP: Una alternativa al protocolo TC P s obre Linux Ing. Isaac Fernández Baca Peña M arco Teórico: Q ué es S C TP? Stream Control Transmission Protocol milar a TCP y UDP. Es un protocolo de comunicación

Más detalles

SOCKET S. Alberto Castro Rojas

SOCKET S. Alberto Castro Rojas SOCKET S EL64E Alberto Castro Rojas 1 Interfaz de programación genérica Soporte de múltiples suites de protocolos de comunicación (familias) Representaciones de direcciones sin dependencias (endpoint)

Más detalles

Nombre y apellidos: DNI: 1

Nombre y apellidos: DNI: 1 R E R B 1 R E R 1 R R P Nombre y apellidos: DNI: 1 Examen de Redes de Computadores. Ingeniería Técnica en Informática de Gestión eptiembre de 28 Número de identificación del examen: examid Duración: 2

Más detalles

COMUNICACIÓN ENTRE PROCESOS SOCKETS

COMUNICACIÓN ENTRE PROCESOS SOCKETS COMUNICACIÓN ENTRE PROCESOS SOCKETS Diseño de Sistemas Operativos Curso 2007/08 Grupo: Mi30 Martín Santana, A. David Martínez Santana, Luis Ignacio Qué son?(definición) n) Los sockets son mecanismos de

Más detalles

Programación con Sockets

Programación con Sockets Programación con Sockets INTRODUCCIÓN 1 Qué son los Sockets? Son un mecanismo de comunicación entre procesos: Dentro de una misma máquina. Distribuidos en diferentes máquinas. Que pueden ser identificados

Más detalles

Comunicación entre procesos mediante Sockets Preparado por Gabriel Astudillo Muñoz Escuela de Ingeniería Civil Informática Universidad de Valparaíso

Comunicación entre procesos mediante Sockets Preparado por Gabriel Astudillo Muñoz Escuela de Ingeniería Civil Informática Universidad de Valparaíso 1 Resumen Comunicación entre procesos mediante Sockets Preparado por Gabriel Astudillo Muñoz Escuela de Ingeniería Civil Informática Universidad de Valparaíso Este documento tiene como objetivo describir

Más detalles

TCP Transmission Control Protocol

TCP Transmission Control Protocol 1 TCP Transmission Control Protocol TCP es un protocolo orientado a conexión que crea una conexión virtual entre dos TCPs para enviar datos. Además, TCP usa mecanismos de control de flujo y error en la

Más detalles

UNIVERSIDAD NACIONAL AUTONOMA DE NICARAGUA

UNIVERSIDAD NACIONAL AUTONOMA DE NICARAGUA UNIVERSIDAD NACIONAL AUTONOMA DE NICARAGUA FACULTAD REGIONAL MULTIDISCIPLINARIA ESTELI FAREM - ESTELI Asignatura: Teletratamiento de REDES I Prof. Manuel Rivas Chavarría CONTENIDOS: 1. Modelo de referencia

Más detalles

Programación de aplicaciones distribuidas usando sockets

Programación de aplicaciones distribuidas usando sockets Programación de aplicaciones distribuidas usando sockets 1 a Versión: José Luis Díaz. Octubre 1994. 2 a Versión: José Ramón Arias. Nov. 1998, Oct. 1999, Oct. 2000. Índice general 1. Programación de aplicaciones

Más detalles

Usando Internet Sockets Brian "Beej" Hall beej@piratehaven.org Copyright 1995-2001 by Brian "Beej" Hall

Usando Internet Sockets Brian Beej Hall beej@piratehaven.org Copyright 1995-2001 by Brian Beej Hall Usando Internet Sockets Brian "Beej" Hall beej@piratehaven.org Copyright 1995-2001 by Brian "Beej" Hall Historia Revision Version 1.0.0 August, 1995 Revised by: beej Initial version. Revision Version 1.5.5

Más detalles

Para C un chero no es más que una porción de almacenamiento

Para C un chero no es más que una porción de almacenamiento Ficheros en C Para C un chero no es más que una porción de almacenamiento de memoria. C representa un chero como una estructura, de hecho el chero stdio.h contiene la dención de un chero como si fuese

Más detalles

TimeOut RTT medido 1 5 seg. 2*5= 10 1 2 0,7 3 TimeOut 3 TimeOut 3 0,001 4 0,35 5 0,44

TimeOut RTT medido 1 5 seg. 2*5= 10 1 2 0,7 3 TimeOut 3 TimeOut 3 0,001 4 0,35 5 0,44 ARQUITECTURA DE REDES Y SERVICIOS DE TELECOMUNICACIÓN Junio 2014 Teoría: 1) Qué sucedería si por error recibiera UDP un datagrama UDP que originalmente iba destinado a otra máquina?. (0,5 ptos) 2) Asumiendo

Más detalles

Redes de Computadores Nivel de Aplicación: Programación con sockets 3

Redes de Computadores Nivel de Aplicación: Programación con sockets 3 Redes de Computadores Nivel de Aplicación: Programación con sockets 3 Área de Ingeniería Telemática Dpto. Automática y Computación http://www.tlm.unavarra.es/ En clases anteriores... Clientes y servidores

Más detalles

Guía Beej de Programación en Redes

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

Más detalles

Desarrollo de Aplicaciones Distribuidas. Sockets. Daniel Avellaneda

Desarrollo de Aplicaciones Distribuidas. Sockets. Daniel Avellaneda Desarrollo de Aplicaciones Distribuidas Sockets Daniel Avellaneda Sockets en Java Qué es un Socket Un socket es una abstracción a través de la cual una aplicación pueden mandar y recibir datos. Un socket

Más detalles

Modem IBM Compatible. IBM Compatible. Ethernet IBM AS/400. Laser printer. Workstation. Mac II. El Interfaz. Socket. versión perliminar

Modem IBM Compatible. IBM Compatible. Ethernet IBM AS/400. Laser printer. Workstation. Mac II. El Interfaz. Socket. versión perliminar IBM Compatible Modem IBM Compatible Ethernet IBM AS/400 Laser printer Workstation Mac II El Interfaz Socket versión perliminar ÍNDICE 1. INTRODUCCIÓN. 2. QUÉ ES UN SOCKET?. 2.1. Dominio de un socket. 2.2.

Más detalles

Análisis Experimental de la Transmisión de Datos

Análisis Experimental de la Transmisión de Datos UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE ELECTRÓNICA Análisis Experimental de la Transmisión de Datos ELO322 Redes de Computadores I Pablo Ahumada D. Jorge Cápona G. Resumen Se muestra

Más detalles

Programación C/S Básica

Programación C/S Básica 1 de 16 Programación C/S Básica Enrique Alba Torres Universidad de Málaga (UMA) 2 de 16 Los servicios Internet se ofertan como sistemas Cliente/Servidor Los protocolos de base suelen ser peer-to-peer (igual-a-igual)

Más detalles

Nombre y apellidos: DNI: 1

Nombre y apellidos: DNI: 1 R E R B 1 R E 0 0 0 R S 1 R S R P 0 Nombre y apellidos: DNI: 1 Examen de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Septiembre de 2008 Número de identificación del examen: examid

Más detalles

Redes de Computadores Nivel de Transporte: Introducción + UDP

Redes de Computadores Nivel de Transporte: Introducción + UDP es de Computadores Nivel de Transporte: Introducción + UDP Área de Ingeniería Telemática Dpto. Automática y Computación http://www.tlm.unavarra.es/ Hasta ahora Introducción a grandes rasgos > Internet

Más detalles

Protocolos de transporte y aplicación

Protocolos de transporte y aplicación Protocolos de transporte y aplicación Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto Funciones protocolos de aplicación Los protocolos de la capa de aplicación los utilizan tanto los dispositivos

Más detalles