Java socket objekter bruges til at repræsentere forbindelser mellem to maskiner . Dog kan et program ved hjælp stikkontakter bliver kørt ned , hvis programmet venter en forbindelse at etablere. I dette tilfælde kan du fraspalte en separat tråd om henrettelse, venter en forbindelse, mens hovedprogrammet stadig kører . Ved at udvide dette, kan du bruge separat tråd til at overvåge soklerne til forbindelser, og håndtere dem , kun anmelde programmet, når der er oprettet forbindelse , eller en anden væsentlig endda sker. Main ServerSocket Eksempel
For at lytte til en havn via en socket, skabe en " SocketServer " objekt . Socket servere lytte efter forbindelser på en bestemt port. Ved modtagelse af forbindelsesoplysninger på porten , returnerer Socket Server en " Socket " objekt . Alle data, der modtages via forbindelsen kan behandles via denne socket objekt.
Tråde
Threads er eksempler på at køre kode i et program. Disse tråde udførelse tillade samtidig drift af kode , hvilket betyder, at koden kan skrives til at udføre samtidig gennem forskellige tråde . Så for eksempel , kan et program, der ønsker at overvåge en slags baggrund stat eller tilslutning oprette en tråd, der gør dette, og kalder den røde tråd , når noget ændrer eller en forbindelse opstår.
< Br > Lytte til porte med Threads
Ved at oprette en anden tråd , kan du oprette kode, der overvåger stikket i baggrunden, mens de vigtigste program udfører . For eksempel kan du implementere en klasse, der udvider " Runnable " klasse, og køre det som en separat tråd til at køre i baggrunden , lytter til en port : Hej
private statisk klasse SocketListen implementerer Runnable { public void køre ( ) { try { listenSocket = new ServerSocket ( 9999 ) //lytte til port 9999 } catch ( IOException e ) { System.exit (-1 ) //fejl }
Socket clientSocket = null ; try { modtaget = serverSocket.accept () //tilslutning objekt, hvis succes } catch ( IOException e ) { System.exit (-1 ) //fejl }}}
Opdeling af tråd < br >
p Hvis du har defineret en kørbar klasse til at bruge som et lyttende /overvågning middel, alt der er tilbage er at bruge det som en tråd. Det vigtigste program kan kalde en separat tråd som en del af dens udførelse , der vil køre stikket lytter kode. Når koden er færdig, grundet tilknytning succes eller fejl enten overvågningen tråden genindtræder den røde tråd . Den røde tråd kører en ventende løkke, indtil overvågnings tråd finish:
Thread t = ny tråd (ny SocketListen ()); t.start ();
while ( t.isAlive () ) { threadMessage ( " Still waiting ... "); t.join (1000 ) //venter en sekund før gentagelse loop }