4.- Programación de comunicaciones en red Flashcards

1
Q

4.1.- Comunicación entre aplicaciones

Red de ordenadores. Definición

A

Las redes de ordenadores están formadas por un conjunto de dispositivos que se encuentran conectados entre sí para poder intercambiar información entre ellos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

4.1.- Comunicación entre aplicaciones

Redes de ordenadores. Implementación

A

Para implementar estas redes, se utilizan unas tecnologías bastante complejas que dividen en capas para simplificar un poco las diferentes funciones que se deben llevar a cabo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

4.1.- Comunicación entre aplicaciones

Redes de ordenadores. Capas

A

Para implementar estas redes, se utilizan unas tecnologías bastante complejas que dividen en capas para simplificar un poco las diferentes funciones que se deben llevar a cabo. Cada una de estas capas será la encargada de una tarea determinada, poniendo en práctica los diferentes recursos (software y hardware) disponibles

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4.1.- Comunicación entre aplicaciones

Modelo TCP/IP. Definicición

A

A continuación, es posible ver que se presentan unas encima de otras, como si fueran una pila, de tal forma que, cada capa se puede comunicar con las que tiene encima y debajo. En el modelo TCP/IP, se divide la comunicación en cuatro capas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

4.1.- Comunicación entre aplicaciones

Modelo TCP/IP. Capas

A

En el modelo TCP/IP, se divide la comunicación en cuatro capas.
* Application Layer
* Transport Layer
* Internet Layer
* Physical Network Layer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

4.1.- Comunicación entre aplicaciones

Modelo TCP/IP. Capas. Application Layer

A

Application Layer
* HTTP
* FTP
* DNS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

4.1.- Comunicación entre aplicaciones

Modelo TCP/IP. Capas. Transport Layer

A

Transport Layer
* TCP
* UDP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

4.1.- Comunicación entre aplicaciones

Modelo TCP/IP. Capas. Internet Layer

A

Transport Layer
* IP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

4.1.- Comunicación entre aplicaciones

Modelo TCP/IP. Capas. Physical Network Layer

A

Transport Layer
* Ethernet
* ATM
* DECnet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes

A

Cuando una aplicación quiere enviar un mensaje se siguen los siguientes pasos:
1. El emisor envía el mensaje, lo que significa que el mensaje pasa de la capa de aplicación a la capa de transporte.
2. En el nivel de transporte se divide el mensaje en paquetes para realizar el envío y lo pasa a la capa inferior, la capa de Internet.
3. En el nivel de Internet se comprueba el destino de los paquetes y se calcula la ruta que deben seguir; después se envían los paquetes al nivel de red.
4. El nivel de red se encarga de transmitir el paquete al receptor del mensaje.
5. El receptor recibe los paquetes en el nivel de red, en el más bajo, y los envía a la siguiente capa, que se corresponde con el nivel de Internet.
6. El nivel de Internet del receptor es el encargado de comprobar que son correctos. Si es así, los reenvía al nivel de transporte.
7. El nivel de transporte es el encargado de formar el mensaje con los paquetes recibidos y envía el mensaje a la última capa, el nivel de aplicación.
8. El nivel de aplicación recibe el mensaje correctamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 1

A

El emisor envía el mensaje, lo que significa que el mensaje pasa de la capa de aplicación a la capa de transporte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 2

A

En el nivel de transporte se divide el mensaje en paquetes para realizar el envío y lo pasa a la capa inferior, la capa de Internet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 3

A

En el nivel de Internet se comprueba el destino de los paquetes y se calcula la ruta que deben seguir; después se envían los paquetes al nivel de red.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 4

A

El nivel de red se encarga de transmitir el paquete al receptor del mensaje.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 5

A

El receptor recibe los paquetes en el nivel de red, en el más bajo, y los envía a la siguiente capa, que se corresponde con el nivel de Internet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 6

A

El nivel de Internet del receptor es el encargado de comprobar que son correctos. Si es así, los reenvía al nivel de transporte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 7

A

El nivel de transporte es el encargado de formar el mensaje con los paquetes recibidos y envía el mensaje a la última capa, el nivel de aplicación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 8

A

El nivel de aplicación recibe el mensaje correctamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

4.1.- Comunicación entre aplicaciones

Aplicaciones. Enviar mensajes. Paso 8

A

El nivel de aplicación recibe el mensaje correctamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

4.2.- Roles Cliente y Servidor

Modelo cliente-servidor. Definición

A

El modelo cliente-servidor se basa en una arquitectura
en la que existen distintos recursos, a los que se denomina servidores, y un determinado número de clientes, es decir, de sistemas que requieren de esos recursos. Los servidores, proveem de recursos a los clientes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

4.2.- Roles Cliente y Servidor

Modelo cliente-servidor. Cliente. Definición

A

Sistemas que requieren de los recursos del servidor y los solicitan a través de peticiones al servidor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

4.2.- Roles Cliente y Servidor

Modelo cliente-servidor. Servidor. Definición

A

Sistemas donde se almacenan los recursos que requieren el cliente y los proveen a través de respuestas al cliente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

4.2.- Roles Cliente y Servidor

Modelo cliente-servidor. En la actualidad

A

En la actualidad existen distintas aplicaciones que utilizan este modelo, como pueden ser el correo electrónico, mensajería instantánea y el servicio de Internet, es decir, se utiliza siempre que se accede a una página web.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

4.2.- Roles Cliente y Servidor

Modelo cliente-servidor. Roles

A

Se debe tener en cuenta que, en este modelo, no se intercambian los roles entre clientes y servidores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
# 4.2.- Roles Cliente y Servidor Modelo cliente-servidor. Sockets
Los sockets también son un ejemplo del modelo cliente-servidor y se estudiarán en este capítulo.
26
# 4.3.- Programación de aplicaciones en red. Librerías Clase InetAddress. Definición
Es la clase que representa las direcciones IP.
27
# 4.3.- Programación de aplicaciones en red. Librerías Clase InetAddress. Funciones
* byte[] getAddress () * static InetAddress getLocalHost () * static InetAddress getLocalHost(String host) * String toString ()
28
# 4.3.- Programación de aplicaciones en red. Librerías Clase InetAddress. Funcion byte[] getAddress ()
Devuelve la dirección IP sin procesar como objeto.
29
# 4.3.- Programación de aplicaciones en red. Librerías Clase InetAddress. Funcion static InetAddress getLocalHost ()
Devuelve la dirección IP de la máquina.
30
# 4.3.- Programación de aplicaciones en red. Librerías Clase InetAddress. Funcion static InetAddress getLocalHost (String host)
Devuelve la dirección IP de la máquina especificada.
31
# 4.3.- Programación de aplicaciones en red. Librerías Clase InetAddress. Funcion String toString ()
Convierte la dirección IP en una cadena.
32
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Definición
Es la clase que representa un localizador de recursos uniforme (URL), es decir, representa la dirección del recurso en Internet.
33
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. URL. Definición
Una URL es un conjunto de caracteres que permiten denominar de forma única los recursos en Internet, de esta forma facilita el acceso a ellos.
34
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. URL. Formato
El formato de una URL es el siguiente: protocolo://máquina:puerto/ruta_fichero
35
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. URL. Usuario y contraseña
Si es necesario la identificación para acceder a ese recurso, el usuario y contraseña se deben indicar delante de la máquina, de forma que la URL quedaría: protocolo:/usuario:contraseña@máquina:puerto/ruta_fichero
36
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Constructores ## Footnote Existen diferentes constructores
Existen distintas formas de crear un objeto de esta clase, dependiendo de los parámetros de los que se disponga. Por ello, existen diferentes constructores: * URL (String url) * URL (String protocol, String host, int port, String file) * URL (String protocol, String host, String file)
37
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Constructores. URL (String url) ## Footnote Existen diferentes constructores
Crea un objeto URL de la cadena recibida.
38
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Constructores. URL (String protocol, String host, int port, String file) ## Footnote Existen diferentes constructores
Crea un objeto URL con los datos recibidos.
39
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Constructores. URL (String protocol, String host, String file) ## Footnote Existen diferentes constructores
Crea un objeto URL con los datos recibidos.
40
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones ## Footnote Existen diferentes constructores
* String getFile () * String getHost () * String getPath () * int getPort () * String getProtocol () * URI toURI () * URLConnection openConnection ()
41
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones. String getFile () ## Footnote Existen diferentes constructores
Devuelve el nombre del archivo.
42
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones. String getHost () ## Footnote Existen diferentes constructores
Devuelve el nombre de la máquina.
43
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones. String String getPath () ## Footnote Existen diferentes constructores
Devuelve el nombre de la ruta de acceso.
44
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones. int getPort () ## Footnote Existen diferentes constructores
Devuelve el puerto que ocupa.
45
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones. String getProtocol () ## Footnote Existen diferentes constructores
Devuelve el protocolo.
46
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones. URI toURI () ## Footnote Existen diferentes constructores
Devuelve el URI equivalente a esta URL.
47
# 4.3.- Programación de aplicaciones en red. Librerías Clase URL. Funciones. URLConnection openConnection () ## Footnote Existen diferentes constructores
Crea y devuelve una conexión al objeto remoto de esta URL.
48
# 4.3.- Programación de aplicaciones en red. Librerías Clase URLConnection. Definición
Esta clase permite trabajar con conexiones realizadas a la URL especificada.
49
# 4.3.- Programación de aplicaciones en red. Librerías Clase URLConnection. Objeto URL. Función openConnection ()
Ccrear un objeto de la clase URL e invocar al método openConnection(). * URL url = new URL (“https://www.ilerna.es/ ca/fp-a-distancia”); * URLConnection urlCon = url.openConnection(); Con esto obtenemos una conexión al objeto URL referenciado. Las instancias se esta clase se pueden utilizar tanto para leer como para escribir al recurso referenciado por la URL.
50
# 4.3.- Programación de aplicaciones en red. Librerías Clase URLConnection. Funciones
* abstract void connect () * InputStream getInputStream () * OutputStream getOutourStream () * URL getURL()
51
# 4.3.- Programación de aplicaciones en red. Librerías Clase URLConnection. Funciones. abstract void connect ()
Establece la conexión con el recurso de la URL. Una vez que se obtiene la conexión se pueden leer y escribir datos en dicha conexión.
52
# 4.3.- Programación de aplicaciones en red. Librerías Clase URLConnection. Funciones. InputStream getInputStream ()
Devuelve un flujo de entrada para leer los datos del recurso.
53
# 4.3.- Programación de aplicaciones en red. Librerías Clase URLConnection. Funciones. OutputStream getOutourStream ()
Devuelve un flujo de salida para escribir datos en el recurso.
54
# 4.3.- Programación de aplicaciones en red. Librerías Clase URLConnection. Funciones. URL getURL()
Devuelve la URL de la conexión.
55
# 4.4.- Sockets Socket. Definición
Un socket es un mecanismo que permite la comunicación entre aplicaciones a través de la red, es decir, abstrae al usuario del paso de la información entre las distintas capas. Su función principal es crear un canal de comunicación entre las aplicaciones y simplificar el intercambio de mensajes.
56
# 4.4.- Sockets Sockets. Abstracción
Abstrae al usuario del paso de la información entre las distintas capas. Su función principal es crear un canal de comunicación entre las aplicaciones y simplificar el intercambio de mensajes.
57
# 4.4.- Sockets Sockets. Componentes
Un socket se define mediante la dirección IP de los dos dispositivos, el protocolo de transporte, y, por último, el puerto de cada uno de los dispositivos por el que se conectan.
58
# 4.4.- Sockets Sockets. Puerto. Definición
Un puerto es el identificador que permite la comunicación entre los dispositivos de una red. Una máquina solo puede tener un único puerto asignado.
59
# 4.4.- Sockets Sockets. Servidor
La máquina denominada servidor tiene un puerto asignado, que es el encargado de quedarse a la espera de que algún cliente realice cualquier petición.
60
# 4.4.- Sockets Sockets. Cliente
Para que un cliente pueda comunicarse con un servidor, debe conocer su dirección IP y el puerto asignado, y realizar la petición.
61
# 4.4.- Sockets Sockets. Servidor. Respuesta
Cuando el servidor recibe la petición, si decide aceptarla, asigna el puerto para la comunicación, de forma que el socket conocido por el cliente queda libre para recibir a nuevos clientes.
62
# 4.4.- Sockets Sockets. Cliente. Petición
Como la petición la realiza desde el puerto del cliente, el servidor ya conoce su puerto, y es el cliente el que aceptará la conexión, y después, asignará el puerto para el envío de mensajes.
63
# 4.4.- Sockets Sockets. Tipos ## Footnote Existen dos tipos de sockets
Existen dos tipos de sockets: * Sockets orientados a conexión * Sockets no orientados a conexión.
64
# 4.4.- Sockets Sockets orientados a conexión. Protocolo TCP. Definición
Este tipo de sockets utilizan el protocolo TCP. Se utilizan para aquellas aplicaciones que requieren una alta fiabilidad en el envío de mensajes, puesto que, mediante este protocolo, aseguran la entrega de todos y cada uno de los paquetes, en el mismo orden en el que fueron enviados.
65
# 4.4.- Sockets Sockets orientados a conexión. Protocolo TCP. Verificacion
Para ello, se utiliza una verificación de los paquetes en el receptor, enviando un acuse de recibo. Si el emisor del mensaje no lo recibe, se procederá entonces al reenvío del paquete.
66
# 4.4.- Sockets Sockets orientados a conexión. Establecimiento de conexión
Otra de las principales características de este tipo de sockets es el establecimiento de la conexión. Para realizarla es necesario el envío de varios mensajes antes de comenzar el intercambio de mensajes
67
# 4.4.- Sockets Sockets orientados a conexión. Pre-envio de mensajes del cliente
* Petición del cliente de establecer conexión (SYN). * Confirmación (ACK) por parte del servidor para establecer la conexión (SYN). * Confirmación de cliente del mensaje anterior (ACK). Una vez que estos tres mensajes han sido enviados, es posible empezar a enviar mensajes entre los dispositivos.
68
# 4.4.- Sockets Sockets orientados a conexión. Finalización de conexión ## Footnote Existen dos tipos de sockets
Cuando termina el envío de mensajes, el cliente es el que decide cerrar la conexión, para ello existen otro tipo de mensajes
69
# 4.4.- Sockets Sockets orientados a conexión. Post-envio de mensajes del cliente
* El cliente envía el mensaje para cerrar la conexión (FIN). * El servidor confirma el cierre de conexión (ACK). * El servidor envía el cierre de la conexión (la otra vía) (FIN). * El cliente confirma el cierre de conexión (ACK)
70
# 4.4.- Sockets Sockets orientados a conexión. Servicios
Los sockets orientados a conexión se utilizan en distintos servicios como, por ejemplo, FTP, Telnet, HTTP y SMTP.
71
# 4.4.- Sockets Sockets orientados a conexión. Servicios
Los sockets orientados a conexión se utilizan en distintos servicios como, por ejemplo, FTP, Telnet, HTTP y SMTP.
72
# 4.4.- Sockets Sockets no orientados a conexión. Protocolo UDP. Definición
Este tipo de sockets utilizan el protocolo UDP
73
# 4.4.- Sockets Sockets no orientados a conexión. Protocolo UDP. Verificación
Al contrario que los anteriores, este tipo de sockets no garantizan que los mensajes enviados lleguen a su destino, por lo que no es un protocolo fiable. Además, tampoco garantizan que los paquetes vayan a llegar en el orden enviado
74
# 4.4.- Sockets Sockets no orientados a conexión. Conexión y mensajes
A cambio de esto, ofrecen una mayor velocidad en el intercambio de los mensajes, puesto que no tienen que establecer conexión para ello, ni controlar los mensajes que han llegado.
75
# 4.4.- Sockets Sockets no orientados a conexión. Servicios
Los sockets no orientados a conexión también son utilizados en los servicios. En este caso son utilizados por SNTP, DNS y NFS
76
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos
En la capa de transporte hay que destacar dos protocolos,TCP y UDP, que son muy importantes en la comunicaciónen red.
77
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias
* Conexión * Función * Uso * Uso por otros protocolos * Ordenar por paquetes de data * Velocidad de transferencia * Confiabilidad * Tamaño de título * Campos comunes de títulos * Fluidez * Peso * Control de flujo de data * Verificación de errores * Campos * Reconocimiento * Handshake (verifica conexiones en tres tiempos)
78
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Conexión
* TCP: Protocolo orientado a conexiones. * UDP: Protocolo sin conexiones.
79
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Función
* TCP: Se usa para enviar mensajes por Internet de una computadora a otra, mediante conexiones virtuales. * UDP: Se usa para transporte de mensajes y/o transferencias. Al no estar basada en conexiones, un programa puede enviar una carga de paquetes y recibirse en el destino.
80
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Uso
* TCP: Aplicaciones que requieren confiablidad alta y donde el tiempo de transmisión es menos crítico. * UDP: Aplicaciones que necesitan transmisión rápida y efectiva. Servidores que reciben una gran cantidad de peticiones pequeñas de un alto número de clientes.
81
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Uso por otros protocolos
* TCP: HTTP, HTTPS, SMTP, Telnet. * UDP: DNS, DHCP, TFTP, SNMP, RIP, VoIP.
82
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Ordenar por paquetes de data
* TCP: Orden especificado. * UDP: No tienen orden inherente. Los paquetes son independientes unos de los otros. Si requieren un orden, esto se maneja a nivel de aplicación.
83
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Velocidad de transferencia
* TCP: Más lento. * UDP: No hace falta verificación de errores por paquete, por lo que su velocidad es mayor.
84
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Confiabilidad
* TCP: Ofrece una garantía absoluta de que los datos llegarán en el mismo orden en que se enviaron. * UDP: No hay garantía de que los paquetes de datos lleguen.
85
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Tamaño del título
* TCP: 20 bits. * UDP: 8 bits
86
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Campos comunes de títulos
* TCP/UCP: Puerto de origen, puerto de destino, checksum.
87
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Fluidez
* TCP: Los datos se leen como una secuencia de bits y no se transmiten indicadores para los límites desegmentos de los mensajes. * UDP: Los paquetes son enviados individualmente; se verifica su integridad solo si llegan. Los paquetes tienen límites definidos, que comprueban que el mensaje está completo.
88
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Peso
* TCP: TCP es pesado. Requiere tres paquetes para establecer una conexión antes de transmitir. TCP maneja confiabilidad y control de congestión. * UDP: UDP es liviano. No hay ordenamiento de mensajes ni conexiones de verificación.
89
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Control de flujo de data
* TCP: Sí realiza control de flujo. Requiere tres paquetes para establecer una conexión antes de transmitir. Maneja confiabilidad y control de congestión. * UDP: No se realiza control de flujo.
90
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Verificación de errores
* TCP: Sí hay verificación de errores. * UDP: Sí hay verificación de errores, pero no tiene opciones para recuperar los datos perdidos.
91
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Campos
* TCP: Número de secuencia, Número de ACK, Índice data, Reservado, Bit de control, Ventana, Indicador de urgencia, Opciones, Relleno, CheckSum, Puerto de origen, Puerto de destino. * UDP: Largo, Puerto de origen, Puerto de destino, CheckSum.
92
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Reconocimiento
* TCP: Hay segmentos de reconocimiento. * UDP: No hace reconocimiento.
93
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Handshake (verifica conexiones en tres tiempos)
* TCP: SYN, SYN-ACK, ACK. * UDP: No hace esta verificación.
94
# 4.5.- Sockets para transmisión y recepción de información Capa de transporte. Protocolos. Diferencias. Checksum
* TCP: Completo. * UDP: Solo para detectar errores.
95
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase ServerSocket. Definición
Es la clase que se debe instanciar en la parte del servidor para crear el puerto que se queda esperando a la conexión por parte de los clientes.
96
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase ServerSocket. Constructores ## Footnote Existen distintos constructores
Existen distintos constructores: * ServerSocket () * ServerSocket (int port) * ServerSocket (int port, int baklog) * ServerSocket (int port, int baklog, InetAdress dirección)
97
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase ServerSocket. Constructores. ServerSocket ()
Crea un socket no enlazado.
98
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase ServerSocket. Constructores. ServerSocket (int port)
Crea un socket enlazado al puerto especificado.
99
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase ServerSocket. Constructores. ServerSocket (int port, int baklog)
Crea un socket enlazado al puerto especificado, indicando el número máximo de peticiones que pueden estar en cola.
100
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase ServerSocket. Constructores. ServerSocket (int port, int baklog, InetAdress dirección)
Crea un socket enlazado al puerto especificado y a una dirección IP, indicando el número máximo de peticiones que pueden estar en cola.
101
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase Socket. Definición
Es la clase que se debe instanciar en la parte del cliente.
102
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase Socket. Constructores ## Footnote Existen distintos constructores
Existen distintos constructores: * Socket () * Socket (InetAddress address, int port) * Socket (InetAddress address, int port, InetAddress localAddr, int localPort) * Socket (String host, int port) * Socket (String host, int port, InetAddress localAddr, int localPort)
103
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase Socket. Constructores. Socket ()
Crea un socket no conectado.
104
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase Socket. Constructores. Socket (InetAddress address, int port)
Crea un socket conectado al puerto indicado en la dirección IP especificada.
105
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase Socket. Constructores. Socket (String host, int port)
Crea un socket y lo conecta al puerto especificado en el host.
106
# 4.6.- Creación de Sockets Sockets orientados a conexión. Clase Socket. Constructores. Socket (String host, int port, InetAddress localAddr, int localPort)
Crea un socket y lo conecta al host remoto especificado en el puerto especificado.
107
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramSocket. Definición
Es la clase que se debe instanciar tanto en la parte del cliente como en el servidor.
108
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramSocket. Constructores ## Footnote Existen distintos constructores:
Existen distintos constructores: * DatagramSocket () * DatagramSocket (int port) * DatagramSocket (int port, InnetAddress Iaddr) * DatagramSocket (SocketAddress bindaddr)
109
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramSocket. Constructores. DatagramSocket ()
Crea un socket UDP y lo conecta a cualquier puerto disponible de la máquina host remota.
110
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramSocket. Constructores. DatagramSocket (int port)
Crea un socket UDP y lo conecta con el puerto especificado.
111
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramSocket. Constructores. DatagramSocket (int port, InnetAddress Iaddr)
Crea un socket UDP y lo conecta a la dirección local especificada.
112
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramSocket. Constructores. DatagramSocket (SocketAddress bindaddr)
Crea un socket UDP y lo conecta a la dirección de socket local especificada.
113
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramPacket. Definición
Es la clase que permite crear paquetes para enviarlos a través del socket UDP.
114
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramPacket. Constructores ## Footnote Existen distintos constructores:
Existen distintos constructores: * DatagramPacket (byte [] buf, int longitud) * DatagramPacket (byte [] buf, int longitud, InetAddress address, int port) * DatagramPacket (byte [] buf, int offset, int longitud) * DatagramPacket (byte [] buf, int longitud, SocketAddress address)
115
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramPacket. Constructores. DatagramPacket (byte [] buf, int longitud)
Crea un datagrama que recibe paquetes de la longitud especificada.
116
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramPacket. Constructores. DatagramPacket (byte [] buf, int longitud, InetAddress address, int port)
Crea un datagrama que envía paquetes de la longitud especificada al puerto especificado,
117
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramPacket. Constructores. DatagramPacket (byte [] buf, int offset, int longitud)
Crea un datagrama que recibe paquetes de la longitud especificada del puerto especificado.
118
# 4.6.- Creación de Sockets Sockets no orientados a conexión. Clase DatagramPacket. Constructores. DatagramPacket (byte [] buf, int longitud, SocketAddress address)
Crea un datagrama que envía paquetes de la longitud especificada al host especificado.
119
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase ServerSocket. Funciones ## Footnote Algunos de sus métodos más importantes
Algunos de sus métodos más importantes: * Socket accept () * void bind (SocketAddress endpoint) * void close () * InetAddress getInetAddress () * int getPort ()
120
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase ServerSocket. Funciones. Socket accept ()
Acepta una petición de conexión por parte del cliente.
121
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase ServerSocket. Funciones. void bind (SocketAddress endpoint)
Vincula el socket a una dirección IP y a un puerto determinado.
122
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase ServerSocket. Funciones. void close ()
Cierra el socket.
123
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase ServerSocket. Funciones. InetAddress getInetAddress ()
Devuelve la dirección local del socket.
124
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase ServerSocket. Funciones. int getPort ()
Devuelve el puerto del socket.
125
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones ## Footnote Algunos de sus métodos más importantes
Algunos de sus métodos más importantes: * void bind (SocketAddress endpoint) * void close () * void connect (SocketAddress endpoint) * InputStream getInputStream () * InetAddress getLocalAddress () * int getLocalPort () * OutputStream getOutputStream () * int getPort () * boolean isClosed () * boolean isConnected ()
126
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. void bind (SocketAddress endpoint)
Vincula el socket a una dirección local.
127
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. void close ()
Cierra el socket.
128
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. void connect (SocketAddress endpoint)
Conecta el socket con el servidor.
129
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. InputStream getInputStream ()
Devuelve el flujo de entrada para el socket.
130
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. InputStream InetAddress getLocalAddress ()
Devuelve la dirección a la que está conectado el socket.
131
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. int getLocalPort ()
Devuelve el número de puerto local al está vinculado el socket.
132
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. OutputStream getOutputStream ()
Devuelve el flujo de salida para el socket.
133
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. int getPort ()
Devuelve el número de puerto remoto al que está conectado el socket.
134
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. boolean isClosed ()
Comprueba si está cerrado el socket.
135
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase Socket. Funciones. boolean isConnected ()
Comprueba si está conectado el socket.
136
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones ## Footnote Algunos de sus métodos más importantes
Algunos de sus métodos más importantes: * InetAddress getAddress () * byte [] getData () * int getLength () * int getPort () * void setAddress (InetAddres address) * void setData (byte [] data) * void setLength (int longitud) * void setPort (int port)
137
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. InetAddress getAddress ()
Devuelve la dirección IP de la máquina con la que se ha realizado una transmisión de paquetes.
138
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. byte [] getData ()
Devuelve el búfer de datos.
139
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. int getLength ()
Devuelve la longitud de los datos.
140
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. int getPort ()
Devuelve el puerto del host remoto con el que se ha realizado una transmisión de paquetes.
141
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. void setAddress (InetAddres address)
Establece la dirección IP de la máquina a la que se envía este datagrama.
142
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. void setData (byte [] data)
Establece el búfer de datos para un paquete.
143
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. void setLength (int longitud)
Establece la longitud del paquete.
144
# 4.7.- Enlazamiento y establecimiento de conexiones Sockets orientados a conexión. Clase DatagramSocket. Funciones. void setPort (int port)
Establece el puerto del host remoto al que se envía el datagrama.
145
# 4.8.- Programación de Cliente y Servidor Socket TCP. Creación. Servidor
Cuando se crea un socket en el servidor, se queda esperando a que los clientes se conecten. Esto se realiza mediante la función accept( )
146
# 4.8.- Programación de Cliente y Servidor Socket TCP. Creación. Cliente
Cuando se crea un socket en el cliente, indicando el puerto y la dirección del socket servidor, se realiza la conexión entre el cliente y el servidor.
147
# 4.8.- Programación de Cliente y Servidor Socket TCP. Transmisión. Funciones
Una vez que existe conexión, comienza la transmisión de los datos, mediante funciones de write y read.
148
# 4.8.- Programación de Cliente y Servidor Socket TCP. Transmisión. Clases
Estas operaciones se realizan mediante las clases DataInputStream y DataOutputStream, que permiten utilizar diversos métodos de lectura y de escritura.
149
# 4.8.- Programación de Cliente y Servidor Socket TCP. Finalización
Cuando se termina la transmisión de los datos, se cierra la conexión, y también el socket del cliente. Después, cuando el servidor acaba su función, también se cierra.
150
# 4.8.- Programación de Cliente y Servidor Socket UDP. Creación. Servidor
Se crea un socket en el servidor que se queda a la espera de peticiones de clientes.
151
# 4.8.- Programación de Cliente y Servidor Socket UDP. Creación. Cliente
Cuando se crea un socket en el cliente, se conecta al socket del servidor.
152
# 4.8.- Programación de Cliente y Servidor Socket UDP. Creación. Transmisión
Una vez realizada la conexión se envían los distintos datagramas mediante los métodos send y receive.
153
# 4.8.- Programación de Cliente y Servidor Socket UDP. Creación. Finalización
Cuando se termina la transmisión de los datos, se cierra el socket del cliente. El servidor se puede quedar a la espera de otros clientes, pero cuando el servidor termina su función, también hay que cerrar su socket.
154
# 4.9.- Hilos en programación de aplicaciones en red Sockets. Simultaneidad. Problema
Mediante los sockets creados hasta ahora, el servidor únicamente es capaz de trabajar con un cliente simultáneamente,
155
# 4.9.- Hilos en programación de aplicaciones en red Sockets. Simultaneidad. Solución
La solución para esto pasa por la creación de hilos para contestar a cada cliente. Es decir, cuando se crea el socket del servidor y se queda esperando clientes y recibe la petición de un cliente, debe crear un hilo con el resto del funcionamiento del servidor. De esta forma, el servidor podrá atender a todos los clientes que realicen la petición.