Java objekthierarki indeholder mange klasser , der håndterer mange former for datatyper og dataforbindelser . Den " Socket " og " ServerSocket " klasser repræsenterer enkle tilslutninger et Java -program kan gøre til et andet program via havnene i en computer. Gennem disse objekter, kan et Java -program modtage data eller meddelelser, som tekst, fra en ekstern computer. Så for eksempel , ville en simpel chat-klient skrevet i Java køre Socket og ServerSocket objekter til at sende og modtage meddelelser. Chat Server og ServerSocket
I sin mest basale , vil en Java chat server bruger en ServerSocket objekt til at lytte efter en forbindelse. Den " acceptere " metoden tvinger programmet til at vente, indtil der er oprettet forbindelse . Denne metode returnerer en " Socket " objekt, der repræsenterer den accepterede forbindelsen. Som det fremgår af følgende kode eksempel vil chat-program altid lytte efter en indgående forbindelse på en bestemt port og returnere tilslutningsmuffen : Hej
import java.net.ServerSocket , import java.net.Socket ; import java . io.BufferedReader , import java.io.InputStreamReader ,
class Chat {
public static void vigtigste ( String [] args ) { ServerSocket s = null s = nye ServerSocket ( 9999 ) , Socket s = server.accept (); }}
modtagelse af beskeder
Når forbindelsen er etableret , kan programmøren læse input fra stikkontakten. Denne indgang , budskabet fra en anden snak, vil læse i en " BufferedInput " objekt , som derefter kan læse sine oplysninger ind i en String variabel : Hej
BufferedReader input = new BufferedReader (ny InputStreamReader ( s.getInputStream () )), String message = input.readline ();
lagring af meddelelser
Når modtage beskeder fra den eksterne computer, kan det være en fordel at gemme dem i et array , således at en multipel meddelelse er ikke tabt . I praksis er det programmøren kan gøre butikken beskeder i et array med en revolverende ", mens " loop . For hver modtaget meddelelse , vil løkken gemme en besked i rækken, og flytte til næste indeks , indpakning rundt til den første indeks, når arrayet er fuld : Hej
String [ ] messages = new String [20] ; int index = 0; message = input.readLine ();
while ( message = null !) { messages [ indeks] = besked , index + +; message = input.readLine ( );}
< br >
Sender breve
programmøren kan også bruge socket objekter til at oprette forbindelse til en ekstern computer, der lytter til kommunikation . Ved at bruge stikket til at tilslutte , kan programmøren åbne en output stream at sende en besked til brugeren. Hun opnår dette ved hjælp af en PrintWriter objekt , sætter det til stikket output stream og skrivning gennem soklen : Hej
Socket connect = new Socket ( "http : \\ \\ www.computer.domain " , 9999 ) ;
out = new PrintWriter ( connect.getOutputStream () , true) ; out.print ( " Sender besked ... ");