Sockets en JAVA

download Sockets en JAVA

of 15

Transcript of Sockets en JAVA

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERA TELEMTICA

Sockets para servidorDaniel Daz Snchez Florina Almenrez Andrs Marn Departamento de Ingeniera Telemtica Universidad Carlos III de Madrid [email protected]

Contexto Objetivos Conocer las particularidades de las comunicaciones en Java Java, desarrollando pequeos programas que interacten con protocolos conocidos Conocer la perspectiva de servidor del paquete java de sockets

Comunicaciones: Socket, ServerSocket Pg. 1

1

ndice Introduccin a los sockets de servidor Conceptos bsicos Sockets servidor clase ServerSocket

Comunicaciones: Socket, ServerSocket Pg. 2

Introduccin a los sockets de servidor Hasta ahora hemos visto los sockets de cliente pero un cliente no es nada si no puede conectarse al servidor conoce el host/puerto al que quiere conectar sabe cuando realiza la conexin

En cambio, un servidor No conoce de antemano quien va a conectarse Ni cuando

Un servidor es como un telefonista, siempre est esperando a que lleguen llamadas entrantesComunicaciones: Socket, ServerSocket Pg. 3

2

Introduccin a los sockets de servidor

Comunicaciones: Socket, ServerSocket Pg. 4

Introduccin a los sockets de servidor En esta sesin veremos como hacer que un servidor espere una conexin entrante Cmo manejar dichas conexiones de forma concurrente Muchos clientes pueden conectarse simultneamente al servidor

Veremos algunos ejemplos

Comunicaciones: Socket, ServerSocket Pg. 5

3

Conceptos bsicos: threads Hasta ahora hemos trabajado con clientes, programas secuenciales con un solo hilo Los servidores soportan mltiples conexiones al mismo tiempo. Por tanto, debemos usar threads o hilos Para hacer un programa multihilo podemos hacer dos cosas: Extender la clase java.lang.Thread Implementar el interfaz Runnable

En ambos casos, la funcionalidad del thread se implementa en el mtodo run. Veamos un ejemploComunicaciones: Socket, ServerSocket Pg. 6

Conceptos bsicos: threadsEjemplo de threads con java.lang.Thread j p j gpublicclassEjemploConcurrencia1extendsThread{ /*enlosatributos,tendremostodoaquelloquenecesitamosparaque *nuestrohilohagaloquedeseamos.Enestecaso,usamosunstring yunentero */ / String datoA; int datoB; public EjemploConcurrencia1(String nombreThread,String datoA,int datoB) { super(nombreThread);//ElnombredelThread this.datoA =datoA; this.datoB =datoB; } /*Todothread debetenerunmtodorun. *Estemtodosellamacuandocomienzaelthread*/ public void run(){ for (int i=datoB;i