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