Servidor.pl #!/usr/local/bin/perl use Socket; ($port) $port = 2345 unless $port; Empleamos el módulo Socket, equivalente a las definiciones que.

Slides:



Advertisements
Presentaciones similares
Arquitectura cliente-servidor
Advertisements

Estructuras de control
Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Con el comando netstat (Network status) mostrará información sobre la configuración y actividad de la red.
Programación Interactiva Aplicaciones Cliente-Servidor
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
INF 1400: Redes de Computadores
Desarrollo de Aplicaciones para Internet
Funciones de sockets en C
TEMA 2 Técnicas básicas de construcción de aplicaciones distribuidas
Sockets y Threads en JAVA
Sistemas Informáticos Distribuidos
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
ACCESO A BASES DE DATOS ORACLE CON PHP
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
Cliente.pl #!/usr/local/bin/perl use Socket; ($them, $port) $port = 2345 unless $port; $them = 'localhost' unless $them; El primer argumento es.
Registros de recursos DNS: - Formato general
Servidor de Batalla Naval.
1 IPC - Inter Process Communication Memoria – Pipes – Sockets – Rendez Vous - Mailbox.
Qué pasa cuando varios clientes tratan de conectarse al mismo teimpo a un servidor Una forma es ir atendiéndolos de a uno en un ciclo: como en el programa.
El Socket Un socket es un extremo de un link de comunicación entre dos programas que corren en una red. El socket esta asociado (amarrado, bound) a ub.
Ing. Eddye Sánchez Castillo. Las principales temas de este capitulo son:  Conectarse al Servidor MySql  Conectarse a la Base de Datos  Enviar Consultas.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Christophe Fontano Julien Alagnou Socket.
Sistemas Operativos Distribuidos Prácticas Justo N. Hidalgo Sanz Universidad Antonio de Nebrija 2002/03.
ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Programación con OSF RPC y Microsoft RPC.
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
Node.JS Proyecto Redes de Computadores Sem
MRMUC Instructor Notes
Universidad Nacional de Luján - Asignatura Teleinformática y Redes Tema: Capa de Transporte - TCP 1 Capa de Transporte “Ofrece a sus usuarios un sistema.
Informática Ingeniería en Electrónica y Automática Industrial
Resolución de Problemas y Algoritmos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina.
Sockets.
La Web y el HTTP. Antes del año 1990 Internet era usado por InvestigadoresAcadémicosEstudiantes Transferir archivos logearse remotamente Enviar/recibir.
SOCKETS.
Socket en.NET Grupo # 5. ¿Qué es un Socket? Es la relación entre un puerto de un equipo y el puerto de otro equipo. ¿Qué es un puerto? Es el medio por.
Sockets. / Los sockets (zócalos, referido a los enchufes de conexión de cables) son mecanismos de comunicación entre programas a través de una red TCP/IP.
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
2: Capa Aplicación 1 Capa Aplicación: FTP ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
ELO3091 Interfaz de Socket Agustín J. González ELO309.
Sockets programming. Tipos de datos. Tipos de datos mas usados en programas cliente-servidor: u-char Unsigned 8-bit character. u-short Unsigned 16-bit.
User Datagram Protocol UDP Juan Pablo Araneda Danilo Araya Z.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Servicios en Red UT5. Servicios FTP.
      Protocolo de transferencia de Hipertexto, empleado para acceder a documentos de hipermedia  El protocolo nació en el CERN, como base.
Otras aplicaciones1 FTP Telnet (y ssh) WWW. Otras aplicaciones2 FTP File Tranfer Protocol Protocolo de transferencia de archivos básico pero útil y fácil.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Andres Marín L. Programación sockets en java.
Servicios de Red e Internet
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
2: Capa Aplicación 1 Capa Aplicación: File Transfer Protocol ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
2: Capa Aplicación Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto Computer.
File Transfer Protocol.
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
4. Introducción a IP,TCP,UDP,ARP,ICMP
Registros de recursos DNS.
Capa Aplicación: Programación de sockets
Curso Redes (IS20) -Capítulo 5 1 Redes (IS20) Ingeniería Técnica en Informática de Sistemas Práctica 2- Comunicación de procesos mediante sockets.
Nivel de Transporte en Internet
Modelo OSI Para redes………
Modelo Cliente - Servidor. La Web funciona siguiendo el denominado modelo cliente-servidor, habitual en las aplicaciones que funcionan en una red. Existe.
En informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol)
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
1 Introducción a las Comunicaciones en Red. import java.net.InetAddress; import java.net.UnknownHostException; public class PruebaSockets { public static.
INTEGRANTES: JORGE CRUZ DE OCAMPO EDSON SANCHEZ SUAREZ
Paul Leger SOCKETs Paul Leger
Paul Leger SOCKETs Paul Leger
Programación con sockets I
Programación con sockets II
Transcripción de la presentación:

Servidor.pl #!/usr/local/bin/perl use Socket; ($port) $port = 2345 unless $port; Empleamos el módulo Socket, equivalente a las definiciones que encontramos en «/usr/include/sys/socket.h». Además incluye valores habituales que habría que incluir a mano, y que dependen de la plataforma, como: $AF_INET = 2; $SOCK_STREAM = 1; Toma el valor de los argumentos del programa. Si se recibe alguno, debe ser el número de puerto del socket. Se sitúa en «port» Comprobamos si «port» tiene un valor asignado, y si no es así, se le da el valor «2345»

Servidor.pl (2) ($name, $aliases, $protocol) = getprotobyname('tcp'); if ($port !~ /^\d+$/) { ($name, $aliases, $port) = getservbyport($port, 'tcp'); } Carga en nuestro programa, información importante sobre el protocolo orientado a conexión «tcp». Buscar más en «/etc/protocols» Si la variable «port» no contiene un número, se busca el puerto asociado al nombre simbólico, en «/etc/services» (p.ej.: echo, daytime, ftp,...). =~ efectúa un pattern matching, !~ es la negación. El patrón va entre / /, \d+ es uno o más dígitos, ^ y $ indican principio y final de la cadena.

Servidor.pl (3) La creación del stream de comunicación con sockets tcp es como sigue: socket (s,... Servidor Cliente socket (s,... bind (... accept (s,... bind (... SOCKET DEL CLIENTE SOCKET DEL SERVIDOR CONNECT

Servidor.pl (4) print "Listening on port $port...\n"; socket (S, AF_INET, SOCK_STREAM, $protocol) || die "socket : $!"; « S » es el handler del socket. « AF_INET » indica que usamos puertos. Podríamos haber usado sockets UNIX con « AF_UNIX » «SOCK_STREAM» indica que creamos streams. También es posible usar datagramas con « SOCK_DGRAM »

Servidor.pl (5) $sockaddr = 'S n a4 x8'; $this = pack($sockaddr, AF_INET, $port, "\0\0\0\0"); bind(S, $this) || die "bind : $!"; listen(S,10) || die "listen: $!"; «sockaddr» es un patrón de bits con la dirección del socket, en formato C, luego hay que empaquetarlo con « pack ». «bind» enlaza la dirección con el socket Como un servidor puede atender a más de un cliente, con «listen» se indica cuantas llamadas entrantes se pueden poner en espera.

Servidor.pl (6) select(S); $| = 1; select(STDOUT); for ($con = 1; ; $con++) { printf("Waiting for connection %d....\n", $con); ($addr = accept(NS,S)) || die $!; «$I» especifica el tamaño del búfer. Pone el búfer del socket a 1. Contamos el número de conexiones que se realizan El proceso se bloquea en «accept» hasta que se recibe una petición de conexión. Cuando se recibe una conexión, se acepta, y se transfiere a otro socket alternativo «NS», y se libera el original «S» «NS» se crea en «accept». «$addr» contiene la dirección del cliente.

Servidor.pl (7) select(NS); $| = 1; select(STDOUT); if (($child = fork()) == 0) { ($af,$port, $inetaddr) = unpack($sockaddr, = unpack('C4', $inetaddr); print Connection «fork» devuelve 0 para el proceso hijo, y el «PID» del hijo, para el padre. Desempaquetamos la dirección del proceso cliente, y la imprimimos

Servidor.pl (8) while ( ) { print "Received from client $con: $_"; print NS "Server $con: $_"; } close(NS); print "Client exits. Forked server $con exiting...\n"; exit; } «NS» es el handle socket en modo stream. « » lee del stream y devuelve la próxima línea del socket. Leemos de él hasta que se llega al fin del archivo. La línea leída va a «$_». ECO Limpieza del proceso hijo

Servidor.pl (9) close(NS); } El proceso padre cierra el socket «NS» que ha desviado al proceso hijo.