INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA...

29
LUIS MENGUAL GALÁN INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 2) http://www.personal.fi.upm.es/~lmengual/inicio_IP.html F. I. M. L.S.I.I.S

Transcript of INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA...

Page 1: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS F. I. M.

L.S.I.I.S

LUIS MENGUAL GALÁN

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES

(MÓDULO 2)

http://www.personal.fi.upm.es/~lmengual/inicio_IP.html

F. I. M.

L.S.I.I.S

F. I. M.

L.S.I.I.S

Page 2: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SOCKETS EN JAVA import java.net.*;

Page 3: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Interfaz Sockets en Java (I)

Implementa en java el interfaz original de los sockets de Berkeley

Las funciones en C del interfaz sockets de Berkeley se convierten en clases y métodos en java

Independiente del sistema operativo Compatible con los sockets de Berkeley

Page 4: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

La interfaz sockets en java permite crear un canal de comunicaciones de forma bidireccional

Para que esta comunicación se materialice es necesario que se cree una asociación de 5 elementos:

– Protocolo, Dir IP Local, Pto Local, Dir IP Remota, Pto Remoto

Es el procedimiento más utilizado en las arquitecturas Cliente-Servidor

Interfaz Sockets en Java (II)

Page 5: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Hay dos tipos de sockets: – “Stream sockets” (orientados a conexión):

Clases “Socket”, “ServerSocket” – “Datagram sockets” (no orientados a conexión):

Clases “DatagramSocket”, DatagramPacket” Las operaciones sobre un socket son diferentes

en el cliente y en el servidor Las clases de comunicaciones en java están en

el paquete “java.net”

Interfaz Sockets en Java (III)

Page 6: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Clase Socket (I)

Page 7: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Clase Socket (II)

Page 8: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Clase Socket (III)

Page 9: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Clase ServerSocket (I)

Page 10: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Clase ServerSocket (II)

Page 11: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ServerSocket socket_servidor = new ServerSocket(9999); while (true) { Socket socket_sr = socket_servidor.accept(); System.out.println("CLIENTE CONECTADO ....... "); OutputStream Flujo_salida = socket_sr.getOutputStream(); InputStream Flujo_entrada = socket_sr.getInputStream(); DataOutputStream Flujo_s = new DataOutputStream(Flujo_salida); DataInputStream Flujo_e = new DataInputStream(Flujo_entrada); //read//readint/readlong/write/writeint/writelong (flujo_s, Flujo_e) }

Clase ServerSocket (II) Estructura código servidor

Page 12: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Ejemplo1 _TCP (I) “Envío de cadena como array”

Page 13: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Cliente Servidor

Conexión TCP eco

Socket socket= new Socket(ip,pto); ………………………………………….

ServerSocket serversocket = new ServerSocket(9999); Socket socket = serversocket.accept(); …………………………………………………………………

Ejemplo1 _TCP (II) “Envío de cadena como array”

Page 14: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Cliente Servidor Conexión TCP

Socket socket_cliente= new Socket(dirip,ptoint); OutputStream Flujo_salida = socket_cliente.getOutputStream(); InputStream Flujo_entrada = socket_cliente.getInputStream(); DataOutputStream Flujo_s = new DataOutputStream(Flujo_salida); DataInputStream Flujo_e = new DataInputStream(Flujo_entrada); //calculamos la longitud del mensaje a enviar String mensaje = "mensaje cliente"; int longitud_mensaje= mensaje.length(); //creamos un array de bytes con esa longitud byte[] Mensaje_enviar =new byte[longitud_mensaje]; //Convertimos el mensaje en array de bytes y lo metemos // en el array creado Mensaje_enviar=mensaje.getBytes(); //enviamos la longitud del mensaje al servidor Flujo_s.writeInt(longitud_mensaje); //enviamos el mensaje como un array de bytes Flujo_s.write(Mensaje_enviar,0,longitud_mensaje); socket_cliente.close();

ServerSocket socket_servidor = new ServerSocket(10001); while (true) { Socket socket_sr = socket_servidor.accept(); OutputStream Flujo_salida = socket_sr.getOutputStream(); InputStream Flujo_entrada = socket_sr.getInputStream(); DataOutputStream Flujo_s = new DataOutputStream(Flujo_salida); DataInputStream Flujo_e = new DataInputStream(Flujo_entrada); //recibimos la longitud del mensaje del cliente int num_recibido = Flujo_e.readInt(); //creamos un array de bytes con esa longitud byte[] Mensaje_recibido =new byte[num_recibido]; //recibimos el mensaje como un array de bytes int bytes_leidos = Flujo_e.read(Mensaje_recibido); System.out.println("MENSAJE RECIBIDO: "+ new String(Mensaje_recibido)+" Leidos " + bytes_leidos+ " bytes"); }

import java.net.*; import java.net.*;

Ejemplo1 _TCP (III) “Envío de cadena como array”

Page 15: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Cliente Servidor Conexión TCP

Socket socket_cliente= new Socket(dirip,ptoint); OutputStream Flujo_salida = socket_cliente.getOutputStream(); InputStream Flujo_entrada = socket_cliente.getInputStream(); DataOutputStream Flujo_s = new DataOutputStream(Flujo_salida); DataInputStream Flujo_e = new DataInputStream(Flujo_entrada); File mi_fichero = new File ( “Mi_fichero" ); long tamano_req = mi_fichero.length ( ); Flujo_s.writeLong(tamano_req); byte[] buffer_cliente= new byte[(int) tamano_req]; FileInputStream FicheroReq = new FileInputStream(“My_fichero"); int NumBytesLeidos = FicheroReq.read(buffer_cliente); Flujo_s.write(buffer_cliente,0,NumBytesLeidos); socket_cliente.close();

ServerSocket socket_servidor = new ServerSocket(10001); while (true) { Socket socket_sr = socket_servidor.accept(); OutputStream Flujo_salida = socket_sr.getOutputStream(); InputStream Flujo_entrada = socket_sr.getInputStream(); DataOutputStream Flujo_s = new DataOutputStream(Flujo_salida); DataInputStream Flujo_e = new DataInputStream(Flujo_entrada); long num_recibido = Flujo_e.readLong(); byte[] buffer_servidor= new byte[(int) num_recibido]; int NumBytes_req_SR =0; NumBytes_req_SR =Flujo_e.read(buffer_servidor); FileOutputStream Fichero_req_SR= new FileOutputStream(“fichero_recibido"); Fichero_req_SR.write(buffer_servidor,0,NumBytes_req_SR); Fichero_req_SR.close(); }

Ejemplo3_TCP (I) “Envío de Fichero corto: certificado digital”

Page 16: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

import java.net.*; import java.io.*; import java.util.*; public class CLIENTE_ECO { public static void main(String[] args) { try { String dirip; InputStreamReader Flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(Flujo); System.out.print("Direccion IP: " ); dirip=teclado.readLine(); System.out.print("Puerto:" ); Scanner sc =new Scanner(System.in); String pto= sc.nextLine(); int ptoint= Integer.parseInt(pto); Socket socket= new Socket(dirip,ptoint);

Ejemplo2_TCP (I) “Cliente- Servidor Eco”

Código Cliente

Page 17: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

InputStream inputstream = System.in; InputStreamReader inputstreamreader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); OutputStream outputstream = socket.getOutputStream(); OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outputstream); BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter);

InputStream inputstream2 = socket.getInputStream(); InputStreamReader inputstreamreader2 = new InputStreamReader(inputstream2); BufferedReader bufferedreader2 = new BufferedReader(inputstreamreader2); String string = null; while (!(string = bufferedreader.readLine()).equals("")) { bufferedwriter.write(string + '\n'); bufferedwriter.flush(); System.out.println(bufferedreader2.readLine() ); } socket.close(); } catch (Exception e) { System.out.println("ERROR CAPTURADO:"+e.toString()); } }

Ejemplo2_TCP (II) “Cliente- Servidor Eco”

Código Cliente

Page 18: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

import java.net.*; import java.util.*; import java.io.*; public class SERVIDOR_ECO { public static void main(String[] args) throws IOException { ServerSocket serversocket = null; Socket socket = null ; PrintStream p; while (true) { try { serversocket = new ServerSocket(9999); System.out.println("SERVIDOR ECO ESPERANDO PTO 9999 ....... "); socket = serversocket.accept();

Ejemplo2_TCP (III) “Cliente- Servidor Eco”

Código Servidor

Page 19: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

InputStream inputstream = socket.getInputStream(); InputStreamReader inputstreamreader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); String string = null; OutputStream outputstream = socket.getOutputStream(); OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outputstream); BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter); while ((string = bufferedreader.readLine()) != null) { System.out.println(string); Thread.currentThread().sleep(1000); bufferedwriter.write(string + '\n'); bufferedwriter.flush(); } socket.close(); serversocket.close(); }//try catch (Exception e) { System.out.println("ERROR CAPTURADO:"+e.toString()); socket.close(); serversocket.close(); } } }//main }//class

Ejemplo2_TCP (IV) “Cliente- Servidor Eco”

Código Servidor

Page 20: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Cliente Servidor Conexión TCP

import javax.net.SocketFactory; //Socket socket_cliente= new Socket(dirip,ptoint); // Se cambia el programa original para crear una // fábrica de sockets, que luego se utiliza para crear sockets. SocketFactory socketFactory = SocketFactory.getDefault(); // Ahora la fábrica crea el socket. Socket socket_cliente = socketFactory.createSocket(dirip, ptoint); OutputStream Flujo_salida = socket_cliente.getOutputStream(); InputStream Flujo_entrada = socket_cliente.getInputStream(); DataOutputStream Flujo_s = new DataOutputStream(Flujo_salida); DataInputStream Flujo_e = new DataInputStream(Flujo_entrada); String mensaje = "mensaje cliente"; Flujo_s.writeUTF(mensaje);

import javax.net.SocketFactory; //ServerSocket socket_servidor = new ServerSocket(9999); // Se cambia la clase simpleSocketServer original para que utilice // ServerSocketFactory con el fin de crear sockets de servidor. ServerSocketFactory serverSocketFactory = ServerSocketFactory.getDefault(); // Ahora, la fábrica ha de crear el socket de servidor. ServerSocket socket_servidor = serverSocketFactory.createServerSocket(9999); // Un servidor real manejaría más de un único cliente así... Socket socket_sr = socket_servidor.accept(); OutputStream Flujo_salida = socket_sr.getOutputStream(); InputStream Flujo_entrada = socket_sr.getInputStream(); DataOutputStream Flujo_s = new DataOutputStream(Flujo_salida) DataInputStream Flujo_e = new DataInputStream(Flujo_entrada); String mensaje_rev = Flujo_e.readUTF();

Ejemplo3_TCP (I) “Factoría Sockets”

Page 21: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Comunicación UDP (I) Clase “DatagramSocket”

Page 22: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Comunicación UDP (II) Clase “DatagramSocket”

Page 23: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Comunicación UDP (III) Clase “DatagramPacket”

Page 24: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Comunicación UDP (IV) Clase “DatagramPacket”

Page 25: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Cliente Servidor

socketCliente = new DatagramSocket(); InetAddress DireccionHostServidor = InetAddress.getByName("localhost"); paqueteEnvio = new DatagramPacket(datosDatagrama, datosDatagrama.length, DireccionHostServidor, 10001); socketCliente.send( paqueteEnvio ); paqueteRecibido= new DatagramPacket(new byte[512], 512); socketCliente.receive( paqueteRecibido ); System.out.write(paqueteRecibido.getData(), 0, paqueteRecibido.getLength());

socketServidor = new DatagramSocket(10001); while (true) { paqueteRecepcion= new DatagramPacket(new byte[512],512); socketServidor.receive(paqueteRecepcion); System.out.write(paqueteRecepcion.getData(), 0, paqueteRecepcion.getLength()); socketServidor.send(paqueteRecepcion); }

Comunicación UDP (III)

Page 26: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Hilos en Java (I)

Page 27: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

import java.lang.*; public class hilos1 { public static void main(String[] args) { int failed = 0 ; InputThread p = new InputThread("MI HILO "); p.start(); if (p != null) System.out.println("Hilo creado con éxito"); else { System.out.println("Error en la creacion del Hilo"); failed++; } int np=0; while (np<10) { System.out.println("Estoy en el padre " ); np++; } //while while(true){} } }

Hilos en Java (II) “hilos.java”

Page 28: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

public class InputThread extends Thread{ String name; InputThread() { name = null; } InputThread(String s) { name = s; } public void run() { if (name == null) System.out.println("Nuevo hilo creado "); else System.out.println("Nuevo hilo cread con nombre: " + name); int n=0; while (n<10) { System.out.println("Estoy en el hilo hijo " ); n++; }//WHILE } }

Hilos en Java (II) “InputThread.java”

Page 29: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESlmengual/documentacion/IP/SOCKETS_JA… · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS Interfaz Sockets

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

MULTICAST

Cliente Servidor MULTICAST

socketCliente = new DatagramSocket(); InetAddress groupAddr = InetAddress.getByName("224.0.0.1"); while (true) { byte datosDatagrama[] = lineaEntrada.getBytes(); paqueteEnvio = new DatagramPacket(datosDatagrama, datosDatagrama.length, groupAddr, 5000); socketCliente.send( paqueteEnvio ); }

InetAddress groupAddr = InetAddress.getByName("224.0.0.1"); MulticastSocket ms = new MulticastSocket(5000); ms.joinGroup(groupAddr); while (true) { paqueteRecepcion= new DatagramPacket(new byte[512], 512); ms.receive(paqueteRecepcion); System.out.write(paqueteRecepcion.getData(), 0, paqueteRecepcion.getLength()); }