¿Cómo utilizar el programa JAVA para determinar si se ha utilizado la dirección IP en la LAN? importar java.io.*; importar java.net.*; importar java.nio.*; importar java.nio.charset.*; . java.util.regex.*; public class Ping { // El puerto diurno predeterminado static int DAYTIME_PORT = 13 // El puerto que realmente usaremos static int port = DAYTIME_PORT; puerto diurno.PORT; // Representa un destino de ping // destino de clase estática { dirección InetSocketAddress; canal de excepción; inicio de conexión largo; fin booleano mostrado = falso; InetSocketAddress(InetAddress.getByName(host), puerto); } catch (IOException x) { falla = x }} void show() { Resultado de cadena si (connectFinish! = 0) resultado = Long.toString(connectFinish - connectStart) "ms"; else if (¡fallo! = nulo) resultado = Failure.toString(); else resultado = "Tiempo de espera agotado"; System.out.println(dirección ": "resultado mostrado = verdadero); Se utiliza para imprimir el destino cuando se recibe el destino // clase estática Impresora extiende Thread { LinkedList pendiente = new LinkedList(); setName("Impresora"); void add(Target t) { sincronizado (pendiente) {pendiente.add(t); pendiente.notify(); } }}} public void run() { try { for (;;) { Target t = null; tamaño () == 0) pendiente.espera(); t = (Objetivo)pendiente.removeFirst(); } t.show() }} captura (InterruptedException x)
{ return; }}} // El hilo se utiliza para conectar todos los objetivos en paralelo a través de un único selector // clase estática Conector extiende el hilo { Selector Printer print; La razón por la que usamos esta lista es que podemos usar esta lista si intentamos // registrar un canal con el selector y el hilo del conector está bloqueado en el selector. // LinkedList pendiente = new LinkedList(); Connector(Printer pr) throws IOException { Printer = pr; sel = Selector.open(); setName("Connector");