Anda di halaman 1dari 6

1.

-Identificar el concepto y uso de los sockets Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiar cualquier flujo de datos, generalmente de manera fiable y ordenada. El trmino socket es tambin usado como el nombre de una interfaz de programacin de aplicaciones ( !") para la familia de protocolos de "nternet #$!%"!, pro&ista usualmente por el sistema operati&o. 'os sockets de "nternet constituyen el mecanismo para la entrega de paquetes de datos pro&enientes de la tarjeta de red a los procesos o (ilos apropiados. )n socket queda definido por un par de direcciones "! local y remota, un protocolo de transporte y un par de n*meros de puerto local y remoto. 2.-Elementos de conexin a travs de sockets $ada &ez que la aplicacin llama a la funcin socket, la implementacin de este reser&a memoria para una nue&a estructura de datos y almacena la direccin de la familia, el tipo de socket y el protocolo. Entonces una cone+in de red entre dos procesos se compone de cinco elementos, -. )n puerto de protocolo local que especifica donde recibe mensajes un proceso. .. 'a direccin del (ost local, la cual identifica al anfitrin que recibir/ los paquetes de datos. 0. )n puerto de protocolo remoto que identifica al proceso destino. 1. 'a direccin del anfitrin remoto, que identifica al anfitrin destino. 2. )n protocolo, que define como los procesos transfieren la informacin a tra&s de la red.

3.- Clases y Mtodos para la comunicacin entre e uipos

3todos de $lase Estos son los mtodos est/ticos que deben llamarse de manera directa en la clase #(read.

current#(read() Este mtodo de&uel&e el objeto t(read que representa al (ilo de ejecucin que se est/ ejecutando actualmente.

yield() Este mtodo (ace que el intrprete cambie de conte+to entre el (ilo actual y el siguiente (ilo ejecutable disponible. Es una manera de asegurar que nos (ilos de menor prioridad no sufran inanicin.

sleep( long ) El mtodo sleep() pro&oca que el intrprete ponga al (ilo en curso a dormir durante el n*mero de milisegundos que se indiquen en el par/metro de in&ocacin. )na &ez transcurridos esos milisegundos, dic(o (ilo &ol&er/ a estar disponible para su ejecucin. 'os relojes asociados a la mayor parte de los intrpretes de 4a&a no ser/n capaces de obtener precisiones mayores de -5 milisegundos, por muc(o que se permita indicar (asta nanosegundos en la llamada alternati&a a este mtodo.

3todos de "nstancia qu6 no est/n recogidos todos los mtodos de la clase #(read, sino solamente los m/s interesantes, porque los dem/s corresponden a /reas en donde el est/ndar de 4a&a no est/ completo, y puede que se queden obsoletos en la pr+ima &ersin del 478, por ello, si se desea completar la informacin que aqu6 se e+pone se (a de recurrir a la documentacin del interfaz de programacin de aplicacin ( !") del 478.

start() Este mtodo indica al intrprete de 4a&a que cree un conte+to del (ilo del sistema y comience a ejecutarlo. continuacin, el mtodo run() de este (ilo

ser/ in&ocado en el nue&o conte+to del (ilo. 9ay que tener precaucin de no llamar al mtodo start() m/s de una &ez sobre un (ilo determinado.

run() El mtodo run() constituye el cuerpo de un (ilo en ejecucin. Este es el *nico mtodo del interfaz :unnable. Es llamado por el mtodo start() despus de que el (ilo apropiado del sistema se (aya inicializado. Siempre que el mtodo run() de&uel&a el control, el (ilo actual se detendr/.

stop() Este mtodo pro&oca que el (ilo se detenga de manera inmediata. menudo constituye una manera brusca de detener un (ilo, especialmente si este mtodo se ejecuta sobre el (ilo en curso. En tal caso, la l6nea inmediatamente posterior a la llamada al mtodo stop() no llega a ejecutarse jam/s, pues el conte+to del (ilo muere antes de que stop() de&uel&a el control. )na forma m/s elegante de detener un (ilo es utilizar alguna &ariable que ocasione que el mtodo run() termine de manera ordenada. En realidad, nunca se deber6a recurrir al uso de este mtodo. suspend() El mtodo suspend() es distinto de stop(). suspend() toma el (ilo y pro&oca que se detenga su ejecucin sin destruir el (ilo de sistema subyacente, ni el estado del (ilo anteriormente en ejecucin. Si la ejecucin de un (ilo se suspende, puede llamarse a resume() sobre el mismo (ilo para lograr que &uel&a a ejecutarse de nue&o.

resume() El mtodo resume() se utiliza para re&i&ir un (ilo suspendido. ;o (ay garant6as de que el (ilo comience a ejecutarse inmediatamente, ya que puede (aber un (ilo de mayor prioridad en ejecucin actualmente, pero resume() ocasiona que el (ilo &uel&a a ser un candidato a ser ejecutado.

set!riority( int ) El mtodo set!riority() asigna al (ilo la prioridad indicada por el &alor pasado como par/metro. 9ay bastantes constantes predefinidas para la prioridad, definidas en la clase #(read, tales como 3";<!:"=:"#>, ;=:3<!:"=:"#> y 3 ?<!:"=:"#>, que toman los &alores -, 2 y -5, respecti&amente. $omo gu6a apro+imada de utilizacin, se puede establecer que la mayor parte de los procesos a ni&el de usuario deber6an tomar una prioridad en torno a ;=:3<!:"=:"#>. 'as tareas en segundo plano, como una entrada%salida a red o el nue&o dibujo de la pantalla, deber6an tener una prioridad cercana a

3";<!:"=:"#>. $on las tareas a las que se fije la m/+ima prioridad, en torno a 3 ?<!:"=:"#>, (ay que ser especialmente cuidadosos, porque si no se (acen llamadas a sleep() o yield(), se puede pro&ocar que el intrprete 4a&a quede totalmente fuera de control.

get!riority() Este mtodo de&uel&e la prioridad del (ilo de ejecucin en curso, que es un &alor comprendido entre uno y diez.

set;ame(String ) Este mtodo permite identificar al (ilo con un nombre menmnico. 7e esta manera se facilita la depuracin de programas multi(ilo. El nombre mnemnico aparecer/ en todas las l6neas de trazado que se muestran cada &ez que el intrprete 4a&a imprime e+cepciones no capturadas.

get;ame() Este mtodo de&uel&e el &alor actual, de tipo cadena, asignado como nombre al (ilo en ejecucin mediante set;ame().

!.-Investi"ar conceptos# sintaxis# clases y mtodos para manipular $ilos %intaxis

public class #(readEjemplo e+tends #(read @ public #(readEjemplo(String str) @ super(str)A B public &oid run() @ for (int i C 5A i D -5 A iEE)

System.out.println(i E F F E get;ame())A System.out.println(F#ermina t(read F E get;ame())A B public static &oid main (String GH args) @ neI #(readEjemplo(F!epeF).start()A neI #(readEjemplo(F4uanF).start()A System.out.println(F#ermina t(read mainF)A B B

Manipulacin de un &ilo'($read)

Si todo fue bien en la creacin del (ilo, t- deber6a contener un t(read &/lido, que controlaremos en el mtodo run().

)na &ez dentro de run(), se pueden comenzar las sentencias de ejecucin como en otros programas. run() sir&e como rutina main() para los (ilosA cuando run() termina, tambin lo (ace el (ilo. #odo lo que se quiera que (aga el (ilo de ejecucin (a de estar dentro de run(), por eso cuando se dice que un mtodo es :unnable, es obligatorio escribir un mtodo run().

En este ejemplo, se intenta inmediatamente esperar durante una cantidad de tiempo aleatoria (pasada a tra&s del constructor),

sleep( retardo )A El mtodo sleep() simplemente le dice al (ilo de ejecucin que duerma durante los milisegundos especificados. Se deber6a utilizar sleep() cuando se pretenda retrasar la ejecucin del (ilo. sleep() no consume recursos del sistema mientras el (ilo duerme. 7e esta forma otros (ilos pueden seguir funcionando. )na &ez (ec(o el retardo, se imprime el mensaje F9ola 3undoJF con el nombre del (ilo y el retardo.

Anda mungkin juga menyukai