SlideShare una empresa de Scribd logo
1 de 15
Módulo ECI - 11: Fundamentos de Redes de Computadores




                                                                                              1
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



             La Clase InetAddress

 Una direccion IP es la dirección absoluta de un computador
  cualquiera en toda la internet. En la versión actual consiste en
  un valor guardado en 4bytes. Datos pueden ser mandados de
  un computador a otro en la internet sólo si se tiene este número
  del destinatario.
 No tiene constructores, se crea un objeto InetAddress nuevo
  haciendo InetAddress n = InetAddress.getLocalHost()
        InetAddress n = InetAddress.getByName(nombre)
 Y tiene los siguientes métodos:
     String nombre = n.getHostName()
     String direccion = n.getHostAddress()
 ver programa ejemplo InetExample.java

                                                                                                         2
           Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



                               La Clase URL
 Un URL es un UNIFORM RESOURCE LOCATOR. Consiste en
  una dirección de un recurso que un servidor en la internet pone a
  disposición de los usuarios, como por ej. http://www.arminco.com
 En un objeto URL existen dos componentes principales: El
  descriptor de protocolo (ej. http) y el nombre del recurso (ej.
  www.arminco.com). http significa Hyper Text Transfer protocol
  pero hay otros protocolos de transferencia de datos en la internet
  como: el File Transfer protocol (ftp), Gopher, File o News.
 En java es posible abrir una direccion de URL leer el contenido
  como si fuera un archivo cualquiera. Para ello debemos crear un
  objeto URL, con el nombre del protocolo y la dirección del recurso
  que queremos recuperar.


                                                                                                           3
             Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



                    La Clase URL (2)
 Existen varios constructores de URL:
     URL unRUL = new URL(“http://www.arminco.com/index.html”);
     unURL = new URL(“http”;”www.arminco.com”,”index.html”);
     inURL = new URL(“http”,”www.arminco.com”,80,”index.html”);
 Al crear una variable URL se puede producir una excepcion del tipo
   MalformedURLException por eso se deben tomar las medidas
   necesarias (como por ej: usar un bloque try-catch)
   try {
         URL miURL = new URL(....); }
   catch(MalFormedURLException e) {
         // codigo para atrapar la exception
   }
 Métodos que se pueden aplicar a un objeto de la clase URL:
 getProtocol(), getHost(), getPort(), getFile(), openConnection()
                                                                                                        4
          Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



                    La Clase URL (3)
 Si sabemos a priori que el contenido de un URL es texto podemos
   leerlo de la siguiente manera:
    import java.net.*;
   import java,io.*;
   public class Leer URL {
         public static void main(String args[]) {
           try {
                   URL miURL = new URL(“http://www.dcc.uchile.cl”);
                   URLConnection c = miURL.openConnection();
                   BufferedReader in = new BufferedReader (
                                             new InputStreamReader(
                                             c.getInputStream()));
                   String line;
                   while ((line = in.readLine() != null)
                            System.out.prinln(line);
                   c.close();
        catch(MalFormedURLException e) { }
      }
}
Ejercicio: programar esto pero permitir dar el http como parámetro
                                                                                                        5
          Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



                                     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 número de port de modo que la capa
  TCP pueda identificar exactamente la aplicación a la cual están
  destinados los datos que llegan a un computador.
 Normalmente un servidor que corre en un computadore
  específico tiene un socket que está asociado a un número de port
  específico. El servidor espera, “oyendo” por el socket a que un
  cliente quiera establecer alguna comunicación.
 Para que un cliente pueda comuncarse con el servidor debe saber
  a que port está asociado el socket por el cual el servidor está
  aceptando llamadas. Para hacer una petición de conexión el
  cliente debe tratar de hacer un rendezvous con por el port donde
  está escuchando el servidor.




                                                                                                        6
          Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



                               El Socket (2)
 Si todo sale bien, el servidor acepta la conexión. Con la
  aceptación el servidor recibe un nuevo socket asociado a un port
  nuevo (cuyo número no necesariamente conoce). El port original
  (por donde escuchaba) queda libre para seguir escuchando otras
  peticiones.
 Se crea un link de comunicaciones bi-direccional entre el
  servidor y el cliente. En el servidor, el extremo está asociado al
  nuevo port.
 En el cliente, si la conexión fue aceptada por un servidor, se crea
  un socket asociado a un port (cuyo nombre no es necesariamente
  conocido).
 El cliente y el servidor se comunican escribiendo datos en o
  leyendo datos desde el socket.




                                                                                                         7
           Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



   Sockets en el Cliente en Java (1)
 Cuando un programa cliente (llamador) en java desea conectarse
  con un servidor (en cualquier lenguaje!) debe saber primero
  dónde esta corriendo (host) y en que port está escuchando.
 El host lo puede dar como dirección (Ej: “192.123.355.211”) o
  como nombre (ej: achawall.dcc.uchile.cl).
 Sabiendo esto puede interntar un “rendezvous” con el servidor.
  Esto se hace intentando crear una conexión TCP y recogiendo el
  extremo del circuito virtual en un socket
                       Socket llamando;
                       llamando = new Socket(host,5555);
 Esto queda esperando hasta que se realiza la conexión en el
  servidor y se crea el socket, que es el extremo local de la
  conexión. El otro extremo (servidor) NO está asociado al port
  5555. Ese se usó solamente para oir.
 Esto puede ocacionar un error si el host no existe, no está
  alcanzable por la red o no hay ningún servidor oyendo por ese
  socket. Para eso hay naturalmente un timeout.
 Conviene por esto siempre ejecutarlo en un bloque try con el
  catch “agarrando una excepción “UnknownHostException”
                                                8
          Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



    Sockets en el Cliente en Java (2)
 Si todo sale bien con la conexión, podemos abrir un canal de
  lectura y/u otro de escritura para poder recibir y/o enviar datos.

PrintWriter out = new PrintWriter(llamando.getOutputStream(), true);
BufferedReader In = new BufferedReader(new
                  InputStreamReader(llamando.getInputStream()));
 getInputStream y getOutputStream abren flujos de datos
  orientados a la lectura y escritura de bytes por la línea.
  Printwriter y BufferedReader son “filtros” que permiten leer y
  escribir strings.
out.print(“hola pelao”); out.println(“como estas”);
String linea = in.readLine();
 El servidor debe enviar una marca de fin de línea (ascii) !!!!
 Veamos un cliente que se conecta al servidor echo de una
  máquina Unix. Modifíquelo para que se conecte a otros.
                                                                                                          9
            Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



        Programas Cliente en Java
 Veamos un cliente que se conecta al servidor echo de una
  máquina Unix.
 ¿Cómo habría que modificarlo para que se conecte con el
  servidor date (13) y muestre la fecha?
 ¿Cómo habría que modificarlo para que se conecte con el
  servidor www (80) y muestre el archivo pedido?
 ¿Cómo habría que modificarlo para que se conecte con el
  servidor finger (79) y muestre la consulta pedida?
 ¿Cómo habría que modificarlo para que se conecte con el
  servidor ftp ( ???) y realice el diálogo?
 ¿Cómo se vería un cliente genérico que sirva de marco para todo
  esto?


                                                                                                         10
           Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



               Programas Cliente en Java
import java.io.*;
import java.net.*;
public class Cliente {
   public static void main(String[] args) throws IOException {
           Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null;
          if (args.length != 2)
                 System.out.println(“Use: java Cliente <host> <port> <protocolo>)”);
          int nport = Integer.parseInt(args[1]); int protocolo = Integer.parseInt(args[1]);
           try {
               echoSocket = new Socket(args[0],nport);
               out = new PrintWriter(echoSocket.getOutputStream(), true);
               in = new BufferedReader(new
                                    InputStreamReader(echoSocket.getInputStream()));
                } catch (UnknownHostException e) {
                   System.err.println("Don't know about host: "+ args[0]);
                   System.exit(1);
                } catch (IOException e) {
                   System.err.println("Couldn't get I/O for the connection to: "+args[0]);
                   System.exit(1);
                }
                protocolo(in,out, protocolo);
      }
}
                                                                                                                   11
                     Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



         Sockets en el Servidor (1)
 El servidor debe empezar por crear un socket servidor y
  asociarlo a un por desde donde escucuchará peticiones de
  posibles clientes que quieran conectarse.

                       ServerSocket escuchando;
                       escuchando = new ServerSocket(5555);
 Con esto sólo ha creado el socket pero no está escuchando. Para
  poder empezar a escuchar debe hacer:
                       Socket = escuchando.accept();
 Esta instrucción hace varias cosas:
    accept bloquea la ejecución del programa hasta que recibe una
    petición de un cliente por ese port (recordemos: llamando = new ....)
    cuando llega un requerimiento de conexión, se crea un circuito
    virtual entre ambos computadores. El cliente recibe un extremo de
    esa conexión y el servidor la otra. Este otro extremo se asocia a otro
    socket que el sistemqa escoge convenientemente.
                                                                                                          12
            Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



         Sockets en el Servidor (2)
 El servidor puede ejecutar los mismos métodos sobre su socket
  para abrir un flujo de entrada y salida de datos.
 Aquí es importante el PROTOCOLO DE LA COMUNICACIÓN
  que no es más que las reglas que deben seguir servidor y cliente
  para comunicarse. Es muy importante que ambos tengan claros
  cuándo y qué se puede/debe escribir y/o leer. Ej. Cual es el
  protocolo de echo ?, de Date ? de telnet ?
 Existen algunos otros métodos que se pueden ejecutar sobre un
  objeto de tipo Socket (notar que tante el servidor como el cliente
  estan con un socket de la misma clase después de haber establecido
  la comunicación)
    InteAddress getInetAddress()
    int getPort()
    InetAddress getLocalAddress()
    int getLocalPort()
    void setSoTimeout(int timeout) int getSoTimeoute()
    void setSoLinger(Boolean on, int val) int getSoLinger() (el delay
    despues de un close())
    close()
                                                                                                          13
            Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



  Sockets: Transmisión de Archivos(1)

 Hagamos ahora un para de programas que se transmitan un
  archivo.
 El que recibe el archivo se pone a escuchar para que le
  manden un archivo (es el servidor !!!)
 El enviador del archivo sabe donde está escuchando el
  recibidor para recibir la petición de transmisión de
  archivos.
 El traspaso se hace a nivel de bytes para poder traspasar
  cualquier tipo de archivo.




                                                                                                         14
           Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
Módulo ECI - 11: Fundamentos de Redes de Computadores



  Sockets: Transmisión de Archivos(2)
Hagamos ahora un par de programas algo más inteligentes:
    El Servidor queda esperando una petición en un port
    Cuando llega una petición lee el nombre del archivo a entregar
    Abre el archivo y lo transmite por el socket.
    El cliente trata de conectarse con el servidor en el port acordado
    una vez que resulta envía el nombre del archivo que quiere
    recuperar
    Lee hasta que encuentra un fin de archivo y lo va guardando en un
    archivo del mismo nombre que el original.




                                                                                                          15
            Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl

Más contenido relacionado

La actualidad más candente

Protocolos y tecnologias web
Protocolos y tecnologias webProtocolos y tecnologias web
Protocolos y tecnologias webRaul Hernandez
 
Protocolos TCP-IP
Protocolos TCP-IPProtocolos TCP-IP
Protocolos TCP-IPpepex123456
 
Clase 03 Protocolos Y Servicios De Red
Clase 03   Protocolos Y Servicios De RedClase 03   Protocolos Y Servicios De Red
Clase 03 Protocolos Y Servicios De RedJaime Valenzuela
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoAlvaro Marin
 
Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4Daniel Oscar Fortin
 
01. introducción al web
01. introducción al web01. introducción al web
01. introducción al webeduardochico
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoAlvaro Marin
 
Tcp Ip
Tcp IpTcp Ip
Tcp Ipbetzy
 
Conceptos basicos de redes e internet
Conceptos basicos de redes e internetConceptos basicos de redes e internet
Conceptos basicos de redes e internetjosemanuel901
 
Redes y protocolo TCP IP
Redes y protocolo TCP IPRedes y protocolo TCP IP
Redes y protocolo TCP IPcveraq
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoAlvaro Marin
 
Internet ¿Qué es? y ¿Cómo funciona?
Internet ¿Qué es? y ¿Cómo funciona?Internet ¿Qué es? y ¿Cómo funciona?
Internet ¿Qué es? y ¿Cómo funciona?Moni Ordoñez
 
Tcp Ip Diapositiva
Tcp Ip DiapositivaTcp Ip Diapositiva
Tcp Ip Diapositivaguest385913
 
internet daniel Bonilla Icvc
internet daniel Bonilla Icvcinternet daniel Bonilla Icvc
internet daniel Bonilla Icvc1995dany
 

La actualidad más candente (20)

Protocolos y tecnologias web
Protocolos y tecnologias webProtocolos y tecnologias web
Protocolos y tecnologias web
 
Protocolos TCP-IP
Protocolos TCP-IPProtocolos TCP-IP
Protocolos TCP-IP
 
Clase 03 Protocolos Y Servicios De Red
Clase 03   Protocolos Y Servicios De RedClase 03   Protocolos Y Servicios De Red
Clase 03 Protocolos Y Servicios De Red
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónico
 
10. internet
10. internet10. internet
10. internet
 
Internet
InternetInternet
Internet
 
Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4
 
Sockets java
Sockets javaSockets java
Sockets java
 
01. introducción al web
01. introducción al web01. introducción al web
01. introducción al web
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónico
 
Tcp Ip
Tcp IpTcp Ip
Tcp Ip
 
Conceptos basicos de redes e internet
Conceptos basicos de redes e internetConceptos basicos de redes e internet
Conceptos basicos de redes e internet
 
Internet y servicios.
Internet  y servicios.Internet  y servicios.
Internet y servicios.
 
Redes y protocolo TCP IP
Redes y protocolo TCP IPRedes y protocolo TCP IP
Redes y protocolo TCP IP
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Seguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónicoSeguridad en sistemas de correo electrónico
Seguridad en sistemas de correo electrónico
 
Frey001 (1)
Frey001 (1)Frey001 (1)
Frey001 (1)
 
Internet ¿Qué es? y ¿Cómo funciona?
Internet ¿Qué es? y ¿Cómo funciona?Internet ¿Qué es? y ¿Cómo funciona?
Internet ¿Qué es? y ¿Cómo funciona?
 
Tcp Ip Diapositiva
Tcp Ip DiapositivaTcp Ip Diapositiva
Tcp Ip Diapositiva
 
internet daniel Bonilla Icvc
internet daniel Bonilla Icvcinternet daniel Bonilla Icvc
internet daniel Bonilla Icvc
 

Destacado

Classement final vhrs_2013
Classement final vhrs_2013Classement final vhrs_2013
Classement final vhrs_2013Laurent Rebours
 
Nebulosas trabalho
Nebulosas trabalhoNebulosas trabalho
Nebulosas trabalhoThpoon
 
Tirilla homofonos
Tirilla homofonosTirilla homofonos
Tirilla homofonosXiomaraMPG
 
Crucifixión de san pedro
Crucifixión de san pedroCrucifixión de san pedro
Crucifixión de san pedroBlanca Martinez
 
Periódico n°4 prensa alternativa del 16 al 20 de febrero de 2015
Periódico n°4 prensa alternativa del 16 al 20 de febrero  de 2015Periódico n°4 prensa alternativa del 16 al 20 de febrero  de 2015
Periódico n°4 prensa alternativa del 16 al 20 de febrero de 2015Richard Pastor Hernandez
 
20150302 depliant bandoconcorso porro
20150302 depliant bandoconcorso porro20150302 depliant bandoconcorso porro
20150302 depliant bandoconcorso porroMarco Simoncini
 
The User Enablement Dilemma: How do you empower users while maximizing securi...
The User Enablement Dilemma: How do you empower users while maximizing securi...The User Enablement Dilemma: How do you empower users while maximizing securi...
The User Enablement Dilemma: How do you empower users while maximizing securi...RES
 
Nuovi arrivi in biblioteca
Nuovi arrivi in bibliotecaNuovi arrivi in biblioteca
Nuovi arrivi in bibliotecaFederica Pucci
 
Divulgacao class 2013_cgrh 7, 23.11.2012
Divulgacao class 2013_cgrh 7, 23.11.2012Divulgacao class 2013_cgrh 7, 23.11.2012
Divulgacao class 2013_cgrh 7, 23.11.2012SILVIA MESSIAS
 
Introducing Innexta
Introducing InnextaIntroducing Innexta
Introducing InnextaInnexta
 
F-Store V3 Release Description 3.0.0.0
F-Store V3 Release Description 3.0.0.0F-Store V3 Release Description 3.0.0.0
F-Store V3 Release Description 3.0.0.0LearingFBITS
 
Maison des Quartier 2.0
Maison des Quartier 2.0Maison des Quartier 2.0
Maison des Quartier 2.0Bruno Morleo
 

Destacado (20)

Classement final vhrs_2013
Classement final vhrs_2013Classement final vhrs_2013
Classement final vhrs_2013
 
Nebulosas trabalho
Nebulosas trabalhoNebulosas trabalho
Nebulosas trabalho
 
Master in Strategie per il Business dello Sport - newsletter Febbraio2007
Master in Strategie per il Business dello Sport - newsletter Febbraio2007Master in Strategie per il Business dello Sport - newsletter Febbraio2007
Master in Strategie per il Business dello Sport - newsletter Febbraio2007
 
Francisco de Goya
Francisco de GoyaFrancisco de Goya
Francisco de Goya
 
Tirilla homofonos
Tirilla homofonosTirilla homofonos
Tirilla homofonos
 
Oea
OeaOea
Oea
 
Informática formato de entrega
Informática  formato de entregaInformática  formato de entrega
Informática formato de entrega
 
Elmundoen100personas
Elmundoen100personasElmundoen100personas
Elmundoen100personas
 
Mysteve
MysteveMysteve
Mysteve
 
Crucifixión de san pedro
Crucifixión de san pedroCrucifixión de san pedro
Crucifixión de san pedro
 
Periódico n°4 prensa alternativa del 16 al 20 de febrero de 2015
Periódico n°4 prensa alternativa del 16 al 20 de febrero  de 2015Periódico n°4 prensa alternativa del 16 al 20 de febrero  de 2015
Periódico n°4 prensa alternativa del 16 al 20 de febrero de 2015
 
20150302 depliant bandoconcorso porro
20150302 depliant bandoconcorso porro20150302 depliant bandoconcorso porro
20150302 depliant bandoconcorso porro
 
Bollettino SIL N. 07 - 15
Bollettino SIL N. 07 - 15Bollettino SIL N. 07 - 15
Bollettino SIL N. 07 - 15
 
The User Enablement Dilemma: How do you empower users while maximizing securi...
The User Enablement Dilemma: How do you empower users while maximizing securi...The User Enablement Dilemma: How do you empower users while maximizing securi...
The User Enablement Dilemma: How do you empower users while maximizing securi...
 
গল্প
গল্পগল্প
গল্প
 
Nuovi arrivi in biblioteca
Nuovi arrivi in bibliotecaNuovi arrivi in biblioteca
Nuovi arrivi in biblioteca
 
Divulgacao class 2013_cgrh 7, 23.11.2012
Divulgacao class 2013_cgrh 7, 23.11.2012Divulgacao class 2013_cgrh 7, 23.11.2012
Divulgacao class 2013_cgrh 7, 23.11.2012
 
Introducing Innexta
Introducing InnextaIntroducing Innexta
Introducing Innexta
 
F-Store V3 Release Description 3.0.0.0
F-Store V3 Release Description 3.0.0.0F-Store V3 Release Description 3.0.0.0
F-Store V3 Release Description 3.0.0.0
 
Maison des Quartier 2.0
Maison des Quartier 2.0Maison des Quartier 2.0
Maison des Quartier 2.0
 

Similar a REDES 2

C documents and settings_pc10_configuración local_datos de programa_mozilla_...
C  documents and settings_pc10_configuración local_datos de programa_mozilla_...C  documents and settings_pc10_configuración local_datos de programa_mozilla_...
C documents and settings_pc10_configuración local_datos de programa_mozilla_...ORLANDO LOPEZ
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos iiMiguel Hernandez
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones webrobloc13
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgadoguest29f06ee
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgadomephistodark
 
Unidad didactica cortafuegos_final
Unidad didactica cortafuegos_finalUnidad didactica cortafuegos_final
Unidad didactica cortafuegos_finalCrisMB27
 
Solución guía2 estándares,modelos y normas internacionles_362248 (1)
Solución guía2 estándares,modelos y normas internacionles_362248 (1)Solución guía2 estándares,modelos y normas internacionles_362248 (1)
Solución guía2 estándares,modelos y normas internacionles_362248 (1)Juan M. Frv
 
Conceptos basicos redes
Conceptos basicos redesConceptos basicos redes
Conceptos basicos redesedwmu2005
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsdandark2000
 

Similar a REDES 2 (20)

Networking
NetworkingNetworking
Networking
 
Sockets tcp
Sockets tcpSockets tcp
Sockets tcp
 
Sockets
SocketsSockets
Sockets
 
Sockets
SocketsSockets
Sockets
 
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
C  documents and settings_pc10_configuración local_datos de programa_mozilla_...C  documents and settings_pc10_configuración local_datos de programa_mozilla_...
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos ii
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
MODELO TCP_IP.pptx
MODELO TCP_IP.pptxMODELO TCP_IP.pptx
MODELO TCP_IP.pptx
 
Introduccion a la tecnologia web
Introduccion a la tecnologia webIntroduccion a la tecnologia web
Introduccion a la tecnologia web
 
D resumenes
D resumenesD resumenes
D resumenes
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgado
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgado
 
Unidad didactica cortafuegos_final
Unidad didactica cortafuegos_finalUnidad didactica cortafuegos_final
Unidad didactica cortafuegos_final
 
Trabajo de leonardo
Trabajo de leonardoTrabajo de leonardo
Trabajo de leonardo
 
Solución guía2 estándares,modelos y normas internacionles_362248 (1)
Solución guía2 estándares,modelos y normas internacionles_362248 (1)Solución guía2 estándares,modelos y normas internacionles_362248 (1)
Solución guía2 estándares,modelos y normas internacionles_362248 (1)
 
Sockets/ tcp
Sockets/ tcpSockets/ tcp
Sockets/ tcp
 
Conceptos basicos redes
Conceptos basicos redesConceptos basicos redes
Conceptos basicos redes
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas sockets
 
MODELO OSI
MODELO OSIMODELO OSI
MODELO OSI
 
Protocolos
ProtocolosProtocolos
Protocolos
 

Último

Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfluisantoniocruzcorte1
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariamarco carlos cuyo
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 

Último (20)

Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundaria
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 

REDES 2

  • 1. Módulo ECI - 11: Fundamentos de Redes de Computadores 1 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 2. Módulo ECI - 11: Fundamentos de Redes de Computadores La Clase InetAddress  Una direccion IP es la dirección absoluta de un computador cualquiera en toda la internet. En la versión actual consiste en un valor guardado en 4bytes. Datos pueden ser mandados de un computador a otro en la internet sólo si se tiene este número del destinatario.  No tiene constructores, se crea un objeto InetAddress nuevo haciendo InetAddress n = InetAddress.getLocalHost() InetAddress n = InetAddress.getByName(nombre)  Y tiene los siguientes métodos:  String nombre = n.getHostName()  String direccion = n.getHostAddress()  ver programa ejemplo InetExample.java 2 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 3. Módulo ECI - 11: Fundamentos de Redes de Computadores La Clase URL  Un URL es un UNIFORM RESOURCE LOCATOR. Consiste en una dirección de un recurso que un servidor en la internet pone a disposición de los usuarios, como por ej. http://www.arminco.com  En un objeto URL existen dos componentes principales: El descriptor de protocolo (ej. http) y el nombre del recurso (ej. www.arminco.com). http significa Hyper Text Transfer protocol pero hay otros protocolos de transferencia de datos en la internet como: el File Transfer protocol (ftp), Gopher, File o News.  En java es posible abrir una direccion de URL leer el contenido como si fuera un archivo cualquiera. Para ello debemos crear un objeto URL, con el nombre del protocolo y la dirección del recurso que queremos recuperar. 3 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 4. Módulo ECI - 11: Fundamentos de Redes de Computadores La Clase URL (2) Existen varios constructores de URL: URL unRUL = new URL(“http://www.arminco.com/index.html”); unURL = new URL(“http”;”www.arminco.com”,”index.html”); inURL = new URL(“http”,”www.arminco.com”,80,”index.html”);  Al crear una variable URL se puede producir una excepcion del tipo MalformedURLException por eso se deben tomar las medidas necesarias (como por ej: usar un bloque try-catch) try { URL miURL = new URL(....); } catch(MalFormedURLException e) { // codigo para atrapar la exception }  Métodos que se pueden aplicar a un objeto de la clase URL: getProtocol(), getHost(), getPort(), getFile(), openConnection() 4 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 5. Módulo ECI - 11: Fundamentos de Redes de Computadores La Clase URL (3) Si sabemos a priori que el contenido de un URL es texto podemos leerlo de la siguiente manera: import java.net.*; import java,io.*; public class Leer URL { public static void main(String args[]) { try { URL miURL = new URL(“http://www.dcc.uchile.cl”); URLConnection c = miURL.openConnection(); BufferedReader in = new BufferedReader ( new InputStreamReader( c.getInputStream())); String line; while ((line = in.readLine() != null) System.out.prinln(line); c.close(); catch(MalFormedURLException e) { } } } Ejercicio: programar esto pero permitir dar el http como parámetro 5 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 6. Módulo ECI - 11: Fundamentos de Redes de Computadores 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 número de port de modo que la capa TCP pueda identificar exactamente la aplicación a la cual están destinados los datos que llegan a un computador.  Normalmente un servidor que corre en un computadore específico tiene un socket que está asociado a un número de port específico. El servidor espera, “oyendo” por el socket a que un cliente quiera establecer alguna comunicación.  Para que un cliente pueda comuncarse con el servidor debe saber a que port está asociado el socket por el cual el servidor está aceptando llamadas. Para hacer una petición de conexión el cliente debe tratar de hacer un rendezvous con por el port donde está escuchando el servidor. 6 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 7. Módulo ECI - 11: Fundamentos de Redes de Computadores El Socket (2)  Si todo sale bien, el servidor acepta la conexión. Con la aceptación el servidor recibe un nuevo socket asociado a un port nuevo (cuyo número no necesariamente conoce). El port original (por donde escuchaba) queda libre para seguir escuchando otras peticiones.  Se crea un link de comunicaciones bi-direccional entre el servidor y el cliente. En el servidor, el extremo está asociado al nuevo port.  En el cliente, si la conexión fue aceptada por un servidor, se crea un socket asociado a un port (cuyo nombre no es necesariamente conocido).  El cliente y el servidor se comunican escribiendo datos en o leyendo datos desde el socket. 7 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 8. Módulo ECI - 11: Fundamentos de Redes de Computadores Sockets en el Cliente en Java (1)  Cuando un programa cliente (llamador) en java desea conectarse con un servidor (en cualquier lenguaje!) debe saber primero dónde esta corriendo (host) y en que port está escuchando.  El host lo puede dar como dirección (Ej: “192.123.355.211”) o como nombre (ej: achawall.dcc.uchile.cl).  Sabiendo esto puede interntar un “rendezvous” con el servidor. Esto se hace intentando crear una conexión TCP y recogiendo el extremo del circuito virtual en un socket Socket llamando; llamando = new Socket(host,5555);  Esto queda esperando hasta que se realiza la conexión en el servidor y se crea el socket, que es el extremo local de la conexión. El otro extremo (servidor) NO está asociado al port 5555. Ese se usó solamente para oir.  Esto puede ocacionar un error si el host no existe, no está alcanzable por la red o no hay ningún servidor oyendo por ese socket. Para eso hay naturalmente un timeout.  Conviene por esto siempre ejecutarlo en un bloque try con el catch “agarrando una excepción “UnknownHostException” 8 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 9. Módulo ECI - 11: Fundamentos de Redes de Computadores Sockets en el Cliente en Java (2)  Si todo sale bien con la conexión, podemos abrir un canal de lectura y/u otro de escritura para poder recibir y/o enviar datos. PrintWriter out = new PrintWriter(llamando.getOutputStream(), true); BufferedReader In = new BufferedReader(new InputStreamReader(llamando.getInputStream()));  getInputStream y getOutputStream abren flujos de datos orientados a la lectura y escritura de bytes por la línea. Printwriter y BufferedReader son “filtros” que permiten leer y escribir strings. out.print(“hola pelao”); out.println(“como estas”); String linea = in.readLine();  El servidor debe enviar una marca de fin de línea (ascii) !!!!  Veamos un cliente que se conecta al servidor echo de una máquina Unix. Modifíquelo para que se conecte a otros. 9 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 10. Módulo ECI - 11: Fundamentos de Redes de Computadores Programas Cliente en Java  Veamos un cliente que se conecta al servidor echo de una máquina Unix.  ¿Cómo habría que modificarlo para que se conecte con el servidor date (13) y muestre la fecha?  ¿Cómo habría que modificarlo para que se conecte con el servidor www (80) y muestre el archivo pedido?  ¿Cómo habría que modificarlo para que se conecte con el servidor finger (79) y muestre la consulta pedida?  ¿Cómo habría que modificarlo para que se conecte con el servidor ftp ( ???) y realice el diálogo?  ¿Cómo se vería un cliente genérico que sirva de marco para todo esto? 10 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 11. Módulo ECI - 11: Fundamentos de Redes de Computadores Programas Cliente en Java import java.io.*; import java.net.*; public class Cliente { public static void main(String[] args) throws IOException { Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null; if (args.length != 2) System.out.println(“Use: java Cliente <host> <port> <protocolo>)”); int nport = Integer.parseInt(args[1]); int protocolo = Integer.parseInt(args[1]); try { echoSocket = new Socket(args[0],nport); out = new PrintWriter(echoSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream())); } catch (UnknownHostException e) { System.err.println("Don't know about host: "+ args[0]); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: "+args[0]); System.exit(1); } protocolo(in,out, protocolo); } } 11 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 12. Módulo ECI - 11: Fundamentos de Redes de Computadores Sockets en el Servidor (1)  El servidor debe empezar por crear un socket servidor y asociarlo a un por desde donde escucuchará peticiones de posibles clientes que quieran conectarse. ServerSocket escuchando; escuchando = new ServerSocket(5555);  Con esto sólo ha creado el socket pero no está escuchando. Para poder empezar a escuchar debe hacer: Socket = escuchando.accept();  Esta instrucción hace varias cosas: accept bloquea la ejecución del programa hasta que recibe una petición de un cliente por ese port (recordemos: llamando = new ....) cuando llega un requerimiento de conexión, se crea un circuito virtual entre ambos computadores. El cliente recibe un extremo de esa conexión y el servidor la otra. Este otro extremo se asocia a otro socket que el sistemqa escoge convenientemente. 12 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 13. Módulo ECI - 11: Fundamentos de Redes de Computadores Sockets en el Servidor (2)  El servidor puede ejecutar los mismos métodos sobre su socket para abrir un flujo de entrada y salida de datos.  Aquí es importante el PROTOCOLO DE LA COMUNICACIÓN que no es más que las reglas que deben seguir servidor y cliente para comunicarse. Es muy importante que ambos tengan claros cuándo y qué se puede/debe escribir y/o leer. Ej. Cual es el protocolo de echo ?, de Date ? de telnet ?  Existen algunos otros métodos que se pueden ejecutar sobre un objeto de tipo Socket (notar que tante el servidor como el cliente estan con un socket de la misma clase después de haber establecido la comunicación) InteAddress getInetAddress() int getPort() InetAddress getLocalAddress() int getLocalPort() void setSoTimeout(int timeout) int getSoTimeoute() void setSoLinger(Boolean on, int val) int getSoLinger() (el delay despues de un close()) close() 13 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 14. Módulo ECI - 11: Fundamentos de Redes de Computadores Sockets: Transmisión de Archivos(1)  Hagamos ahora un para de programas que se transmitan un archivo.  El que recibe el archivo se pone a escuchar para que le manden un archivo (es el servidor !!!)  El enviador del archivo sabe donde está escuchando el recibidor para recibir la petición de transmisión de archivos.  El traspaso se hace a nivel de bytes para poder traspasar cualquier tipo de archivo. 14 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl
  • 15. Módulo ECI - 11: Fundamentos de Redes de Computadores Sockets: Transmisión de Archivos(2) Hagamos ahora un par de programas algo más inteligentes: El Servidor queda esperando una petición en un port Cuando llega una petición lee el nombre del archivo a entregar Abre el archivo y lo transmite por el socket. El cliente trata de conectarse con el servidor en el port acordado una vez que resulta envía el nombre del archivo que quiere recuperar Lee hasta que encuentra un fin de archivo y lo va guardando en un archivo del mismo nombre que el original. 15 Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) 698 8427 - Email: hthiemer @ cec.uchile.cl

Notas del editor

  1. NOTAS
  2. NOTAS
  3. NOTAS
  4. NOTAS
  5. NOTAS
  6. NOTAS
  7. NOTAS
  8. NOTAS
  9. NOTAS
  10. NOTAS
  11. NOTAS
  12. NOTAS
  13. NOTAS
  14. NOTAS