Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MaterialRAP2 PDF
MaterialRAP2 PDF
applets/aplicaciones
con uso de base de
datos, redes,
servlets y multimedia
Codificar aplicaciones en Java usando
las clases de manejo de Redes
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
2 Tabla de Contenido
1. Introducción al Recurso Educativo Virtual........................................................ 3
2. Mapa conceptual ............................................................................................. 4
3. Desarrollo de contenidos.................................................................................. 5
3.1. Redes en Java.............................................................................................. 5
3.1.1. Introducción a redes de computadores...................................................... 5
3.1.2. TCP – Transmission Control Protocol........................................................ 5
3.1.3. UDP – “User Datagram Protocol” .............................................................. 5
3.1.4. Puertos....................................................................................................... 5
3.1.5. Direccion Ip ............................................................................................... 6
3.1.5.1. Aplicaciones cliente/servidor................................................................... 6
3.1.6. Clases para manejo de redes en java........................................................ 6
3.1.6.1. La clase InnetAddress............................................................................. 6
3.1.6.2. La Clase Socket ..................................................................................... 9
3.1.6.3. La clase ServerSocket............................................................................ 9
3.1.6.3.1 Constructores ..................................................................................... 10
3.1.6.3.2 Métodos importantes .......................................................................... 10
3.1.6.3.3. Ejemplo conexión básica cliente/servidor usando Sockets ............... 10
3.1.6.4. Clase ServidorSocket.java.................................................................... 11
3.1.7. Ejemplo conexión cliente/servidor enviando información......................... 13
4. Material anexo al tema .................................................................................. 17
5. Glosario ......................................................................................................... 18
6. Referencias bibliográficas ............................................................................. 19
Créditos.............................................................................................................. 20
Creative Commons ............................................................................................ 20
1. Introducción
REDES EN JAVA
usa
InetAdress
interfaz virtual Número de 32 bits
Socket
TCP UDP
para
ServerSocket
ventaja ventaja
Identificar equipo
Conexión confiable Conexión rápida
Fuente: SENA
“TCP es un protocolo orientado a conexión Algunas aplicaciones que usan el protocolo UDP
que permite conectar dos aplicaciones de manera son: DNS, VoIp, TFTP.
confiable. Una vez establecida la comunicación
se crea un canal a través del cual cada una de 3.1.4. Puertos
las partes pueden enviar y recibir datos. TCP
garantiza que los datos recibidos en un extremo En este momento está conectado a internet
y en el otro sean íntegros y si esto no llegase a a través de su tarjeta de Red. Si bien es una única
ocurrir reportará un error.” (SNAJDLEDER 2013 conexión física (sea por cable de red o Wifi) puede
pág. 218). estar usando muchas aplicaciones que requieren
conexión de datos (Ej: Skype, Google Chrome,
Este protocolo permite entonces, tener la etc), estas se conectan a través de puertos. Dicho
confiabilidad que el dato que el emisor envía, será de otra forma, los puertos permiten redireccionar
Este tipo de aplicaciones está compuesto Regresa la dirección IP del host que se especi ica
por dos tipos de aplicaciones: La aplicación en el parámetro, por ejemplo getByName (“www.
servidor o server, que le provee servicios a la senasofiaplus.edu.co”) un objeto InetAddress con
aplicación cliente. Ambas pueden estar en una la dirección IP del servidor que aloja la página de
misma computadora o en diferentes computadoras senasofiaplus.
las cuales se conectan a través de puertos.
Los métodos anteriores pueden arrojar una
excepción UnknowHostException en caso de la
dirección IP no se encuentre.
import java.net.*;
public class VerDireccionIp{
public static void main(String[] args) {
InetAddress direccion=null;
try {
direccion = InetAddress.getLocalHost();
System.out.println(“Su IP es:
“+direccion.getHostAddress());
System.out.println(“Su NOMBRE es:
“+direccion.getHostName());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
import java.net.InetAddress;
import java.net.UnknownHostException;
public class VerIpPaginaWeb{
public static void main(String[] args) {
InetAddress direccion=null;
try {
direccion = InetAddress.getByName(“www.senasofiaplus.edu.co”);
System.out.println(“La IP es:
“+direccion.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
• Socket accept()
Este método bloquea la ejecución del programa
esperando por una conexión, la cual una vez
realizada, retorna un objeto tipo Socket con la
conexión establecida.
import java.net.*;
import java.io.*;
public class ServidorSocket {
public static void main(String[] args) throws IOException {
Socket s=null;
ServerSocket ss= new ServerSocket(5432);
try{
System.out.println(“Esperando conexion “);
// Se queda en esta línea de ejecución esperando una conexión
s=ss.accept();
// Ha recibido una conexión y muestra el mensaje.
System.out.println(“He recibido conexion desde la IP “+s.getInetAddress());
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
//Cerramos la conexión
if (s!=null)s.close();
System.out.println(“Conexion cerrada”);
}
}
}
import java.io.*;
import java.net.*;
public class ClienteSocket {
public static void main(String[] args) {
// TODO Auto-generated method stub
Socket s=null;
try {
//nos conectamos al servidor ubicado en la IP 127.0.0.1
//Esta IP es del servidor local, es decir, el mismo computador
s=new Socket(“127.0.0.1”,5432);
} catch (IOException e) {
e.printStackTrace();
}
}
Para realizar la prueba de este código, primero ejecute el código del servidor. Aparecerá en la consola el
mensaje “esperando conexión”. Inmediatamente ejecute el código del ClienteSocket. Verá que aparece en
consola el mensaje de recepción de la conexión y de despedida.
ServidorSocket2.java
import java.io.*;
import java.net.*;
public class ServidorSocket2{
public static void main(String[] args){
ServerSocket ss = null;
Socket s = null;
BufferedReader textoRecibidoDelCliente;
DataOutputStream textoEnviarAlCliente;
String stringRecibido;
try{
ss = new ServerSocket(5432);
System.out.println(“Servidor escuchando”);
//Esperando a recibir una conexion de cliente en puerto 5432
s = ss.accept();
System.out.println(“Ya se conecto el cliente”);
textoRecibidoDelCliente = new BufferedReader(new
InputStreamReader(s.getInputStream()));
ClienteSocket2.java
import java.io.*;
import java.net.*;
public class ClienteSocket2 {
public static void main(String[] args) throws Exception {
Socket s=null;
PrintWriter textoAlServidor;
BufferedReader textoDelTeclado;
DataInputStream textoDelServidor;
String tecleado;
try {
s=new Socket(“127.0.0.1”,5432);
System.out.println(“Ya me conecte al servidor”);
//Abrimos conexion texto del teclado
textoDelTeclado = new BufferedReader(new
InputStreamReader(System.in));
//texto al servidor
textoAlServidor = new
PrintWriter(s.getOutputStream(),true);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Para realizar la prueba de este código, primero puede usar el icono “Display Selected Console” en
ejecute el código del servidor. Inmediatamente el menú de la consola de ejecución). El icono es:
ejecute el código del ClienteSocket. Verá los
mensajes de conexión tanto en la consola de
ejecución del servidor como del cliente. Ingrese un
texto en la consola del cliente y vea la respuesta
del servidor. Para terminar la ejecución presione la Este ejemplo de aplicación cliente / servidor es
tecla Enter sin enviar ningún texto. la base para construir otras aplicaciones más
complejas, siguiendo el mismo principio lógico
(Nota: Dependiendo del editor Java que use, así explicado. El código fuente de las clases explicadas
mismo el icono que permite visualizar la consola en esta unidad las puede descargar en el material
de cada clase ejecutada. En el caso de Eclipse de apoyo y ejecutar en su computador.
5. Glosario
TCP: protocolo de comunicación usado para DIrección IP: número de 32 bits que se le asigna
aplicaciones que requieren confiabilidad en los a un equipo que pertenece a una red IP. Está
datos transmitidos. representado por cuatro números decimales entre
0 y 255.
UDP: protocolo de comunicación que envía los
datos a través de paquetes de información llamados Socket: clase de java que permite conectar dos
datagramas. No proporciona confiabilidad, pero si máquinas (cliente y servidor) a través de un puerto.
mayor velocidad que el protocolo TCP.
ServerSocket: clase de java que permite crear un
Puerto: interfaz que permite que varias servidor que espera una conexión de un cliente a
aplicaciones se conecten a través de un mismo través de un socket.
dispositivo de red redireccionando la información
a través de unas direcciones virtuales.
6. Referencias bibliográficas
Creatives commons
Atribución, no comercial, compartir igual.
Este material puede ser distribuido, copiado y exhibido por
terceros si se muestra en los créditos. No se puede
obtener ningún beneficio comercial y las obras derivadas
tienen que estar bajo los mismos términos de licencia que
el trabajo original.