Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Presa di monitoraggio con Java

oggetti socket Java sono utilizzati per rappresentare le connessioni tra due macchine . Tuttavia, un programma che utilizza socket può diventare impantanati se il programma attende una connessione da stabilire. In questo caso, è possibile separare un thread separato di esecuzione che attende una connessione , mentre il programma principale viene eseguito ancora . Estendendo questo , è possibile utilizzare il thread separato per monitorare le prese per i collegamenti e gestirli , solo notificare il programma quando viene effettuata una connessione o un altro significativo accade anche . Principale ServerSocket Esempio

Per ascoltare una porta attraverso un socket , creare un oggetto " SocketServer " . Server socket in ascolto di connessioni su una porta specifica . Alla ricezione delle informazioni di connessione su quella porta , il Socket Server restituisce un oggetto di "presa" . Tutti i dati ricevuti tramite la connessione possono essere trattati attraverso l'oggetto socket.
Threads

thread sono in esecuzione istanze del codice all'interno di un programma . Questi thread di esecuzione permettono il funzionamento simultaneo di codice , il che significa che il codice può essere scritto per eseguire contemporaneamente attraverso diversi thread . Così, per esempio , un programma che vuole monitorare una sorta di stato di fondo o di connessione in grado di creare un thread che fa questo , e chiamare il thread principale quando si verifica qualcosa cambia o una connessione .

Ascolto di Porte Con fili

Con la creazione di un altro thread , è possibile creare il codice che controlla la presa in background mentre il programma principale viene eseguito . Ad esempio, è possibile implementare una classe che estende la classe " Runnable " , e farlo funzionare come un thread separato per l'esecuzione in background , l'ascolto di una porta :

privato SocketListen classe statica implementa Runnable { public void run () { try { listenSocket = new ServerSocket ( 9999) ; //ascoltare la porta 9999 } catch ( IOException e) { System.exit ( -1 ) ; //errore }

Socket clientSocket = null; try { ricevuto = serversocket.accept ( ) ; oggetto //connessione se il successo } catch ( IOException e) { System.exit ( -1 ) ; //errore } } }
Dividere il filetto

Se è stata definita una classe eseguibile da utilizzare come agente di ascolto /monitoraggio , tutto ciò che rimane è quello di usarlo come un filo . Il programma principale può richiamare un thread separato , come parte della sua esecuzione che verrà eseguito il codice di ascolto socket. Una volta terminato il codice , sia a causa del successo di connessione o errore , il thread di monitoraggio ricongiunge il thread principale . Il thread principale viene eseguito un ciclo di attesa fino a quando il monitoraggio thread termina :

Discussione t = new Thread ( new SocketListen ()); T.Inizio ();

mentre ( t.isAlive ( ) ) { threadMessage ( " Ancora in attesa ... "); t.join (1000), //attende un secondo prima di ripetere loop}

 

Programmazione © www.354353.com