De Java-object hiërarchie bevat vele klassen die vele soorten types data en data -aansluitingen verwerken . De " Socket " en " ServerSocket " klassen vertegenwoordigen eenvoudige verbindingen een Java-programma kan maken naar een ander programma via de havens van een computer . Door middel van deze objecten , kan een Java-programma gegevens of berichten , zoals tekst ontvangt , vanaf een externe computer . Dus, bijvoorbeeld , een simpele chat- client geschreven in Java zou Socket en ServerSocket objecten draaien om berichten te verzenden en te ontvangen . Chat Server en ServerSocket Op zijn meest elementaire , zal een Java chatserver een ServerSocket object gebruiken om te luisteren naar een verbinding . De " accepteren " -methode dwingt het programma om te wachten tot er een verbinding tot stand is gebracht . Deze methode retourneert een " Socket " object vertegenwoordigt de geaccepteerde verbinding . Zoals geïllustreerd in de volgende code voorbeeld , zal het chat- programma altijd luisteren naar een binnenkomende verbinding op een bepaalde poort en keren de aansluitbus : import java.net.ServerSocket ; import java.net.Socket ; import java . io.BufferedReader , import java.io.InputStreamReader ; class Chat { public static void main ( String [ ] args ) op { ServerSocket s = null; s = new ServerSocket ( 9999 ) ; Socket s = server.accept ( ) ; } } Berichten ontvangen Zodra de verbinding is gemaakt , kan de programmeur inbreng lezen uit het stopcontact . Deze ingang is de boodschap van een andere chatter , zal in een " BufferedInput " object , dat vervolgens zijn informatie kunt lezen in een String variabele lezen : BufferedReader ingang = new BufferedReader (nieuw InputStreamReader ( s.getInputStream ( ) ) ) ; String message = input.readline ( ) ; opslaan messages bij het ontvangen van berichten van de externe computer , kan het nuttig zijn om ze op te slaan zijn in een matrix zodat een veelvoud boodschap niet verloren . In de praktijk , wat de programmeur zou kunnen doen is slaan boodschappen in een array met een draaiende lus "terwijl" . Voor elk ontvangen bericht , zal de lus een bericht op te slaan in de array en te verplaatsen naar de volgende index , wikkelen rond de eerste index als de array is vol : String [ ] berichten = new String [ 20 ] ; int index = 0 ; message = input.readLine ( ) ; terwijl ( message = null ) { messages [ index ] = bericht ; index + + ; bericht = input.readLine ( ) ; } < br > Berichten verzenden De programmeur kan ook socket objecten gebruiken om verbinding te maken met een externe computer dat luistert naar de communicatie . Via de aansluiting te verbinden , kan de programmeur een uitvoerstroom openen om een bericht naar de gebruiker . Zij doet dit door middel van een PrintWriter object , bevestigen aan output stream het stopcontact en schrijven via de socket : Socket connect = new Socket ( " http : \\ \\ www.computer.domain " , 9999 ) ; out = new PrintWriter ( connect.getOutputStream ( ) , true); out.print ( " verzonden ... " ) ;
|