Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Aby ste mohli počúvať na porte cez zásuvku , vytvoriť " SocketServer " objekt . Socket Server načúvať na spojenie na určitý port . Po obdržaní informácie o pripojení k tomuto portu , vracia Socket Server a " Socket " objekt . Všetky údaje získané v priebehu spojenia môžu byť spracované prostredníctvom tohto zásuvky objektu .
Témy
Nite sú príklady spustenie kódu v programe . Tieto závity prevedení umožňujú súčasne priebeh kódu , čo znamená , že kód môže byť napísaný vykonávať súčasne rôznymi závitmi . Tak, napríklad , program , ktorý chce sledovať nejaký stáť na pozadí alebo pripojenie možno vytvoriť vlákno , ktoré robí to , a zavolajte hlavné vlákno , keď sa niečo zmení , alebo spojenia dochádza .
Počúvanie porty s vláknami
zriadenie ďalšej vlákno , môžete vytvoriť kód , ktorý sleduje zásuvku na pozadí , zatiaľ čo hlavný program spustí . Napríklad by ste mohli implementovať triedu , ktorá rozširuje " spustiteľný " triedy , a spustite ho ako samostatný vlákno spustiť na pozadí , počúvať port :
private static class SocketListen implementuje spustiteľný { public void spustiť ( ) { try { listenSocket = new ServerSocket ( 9999 ) ; //počúvať na porte 9999 } catch ( IOException e ) { System.exit ( -1 ) ; //error }
Socket clientSocket = null ; try { obdržal = serverSocket.accept ( ) ; //objekt pripojenie v prípade úspechu } catch ( IOException e ) { System.exit ( -1 ) ; //chyba } } }
Rozdelenie závitov
Ak ste definovali runnable triedu použiť ako počúvanie /sledovanie agenta , všetko , čo zostáva , je použiť ako vlákno . Hlavný program môže volať samostatné vlákno ako súčasť svojho plnenia , ktoré pobežia na socket počúvania kód . Akonáhle je kód končí , a to buď z dôvodu úspechu pripojenie alebo chybou , sledovanie vlákno sa vrátia hlavné vlákno . Hlavné vlákno beží čakacej slučku , kým monitorovacích závitových prevedeniach :
Thread t = new Thread ( new SocketListen ( ) ) ; t.start ( ) ;
while ( t.isAlive ( ) ) { threadMessage ( " Stále čakám ... " ) ; t.join ( 1000 ) , //čaká jednu sekundu pred opakovaním slučky }
Copyright © počítačové znalosti Všetky práva vyhradené