objetos socket Java se utilizan para representar las conexiones entre dos máquinas. Sin embargo , un programa que utiliza sockets puede empantanarse si el programa espera una conexión de establecer. En este caso, usted puede partir de un hilo de ejecución independiente que espera una conexión , mientras que el programa principal sigue funcionando . Al extender esto, se puede utilizar el subproceso independiente para supervisar las tomas para las conexiones y manejarlos , sólo notificar al programa cuando se realiza una conexión u otro significativo incluso sucede. Principal ServerSocket Ejemplo
programa para escuchar a un puerto a través de un socket, crear un objeto " SocketServer " . Servidores Socket escuchan las conexiones en un puerto específico. A la recepción de la información de conexión en ese puerto , el Socket Server devuelve un objeto " Socket " . Todos los datos recibidos a través de la conexión pueden ser procesados a través de ese objeto socket .
Hilos
temas son instancias de ejecución de código dentro de un programa . Estos hilos de ejecución permiten el funcionamiento concurrente de código , lo que significa que se puede escribir código para ejecutar al mismo tiempo a través de diferentes hilos . Así , por ejemplo, un programa que se desea vigilar una especie de estado de fondo o la conexión puede crear un hilo que hace esto, y llame al hilo principal cuando algo cambia o una conexión se produce .
< Br > Reproducción de Puertos con hilos
con la creación de otro hilo , puede crear código que controla la toma en segundo plano mientras el programa principal se ejecuta. Por ejemplo , se podría implementar una clase que amplíe la clase " Ejecutable" y ejecutarlo como un subproceso independiente para ejecutar en segundo plano , escuchando a un puerto :
privado SocketListen clase estática implementa Runnable { public void run () {try { listenSocket = new ServerSocket (9999 ) //escuchar en el puerto 9999 } catch ( IOException e) { System.exit ( -1 ) //error}
Socket ClientSocket = null; try { recibido serverSocket.accept = (); //objeto de conexión si el éxito } catch ( IOException e) { System.exit ( -1 ) //error} } }
División del Tema
Si ha definido una clase ejecutable para su uso como un agente de escucha /vigilancia , todo lo que queda es para utilizarlo como un hilo. El programa principal puede llamar a un subproceso independiente como parte de su ejecución que se ejecutará el código escuchar socket. Una vez finalizado el código , ya sea debido al éxito de conexión o error, el subproceso de supervisión se reúne con el hilo principal . El hilo principal se ejecuta un bucle de espera hasta que el control acabados de rosca :
Thread t = new Thread ( nueva SocketListen ()); t.Start ();
while ( t.isAlive () ) { threadMessage ( "Still waiting ... "); t.join ( 1000 ) //espera un segundo antes de repetir loop }