Java Chat Kode

Java objekt hierarki inneholder mange klasser som håndterer mange typer datatyper og datatilkoblinger. Den "Socket" og "Server" klasser representerer enkle forbindelser et Java-program kan gjøre til et annet program gjennom portene på en datamaskin. Gjennom disse objektene, kan et Java-program motta data eller meldinger, for eksempel tekst, fra en ekstern datamaskin. Så, for eksempel, ville en enkel chat-klient skrevet i Java kjøre Socket og Server objekter for å sende og motta meldinger.

Chat Server og Server

På sitt mest grunnleggende, vil en Java chat-server bruker Server objekt for å lytte etter en tilkobling. Den "godta" måten tvinger programmet til å vente til en tilkobling er opprettet. Denne metoden returnerer en "Socket" objekt som representerer akseptert tilkoblingen. Som illustrert i følgende kode eksempel vil chatteprogrammet alltid lytte etter innkommende tilkobling på en bestemt port og tilbake i kontakten:

import java.net.ServerSocket;
import java.net.Socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;

klasse Chat {

public static void main (String[] args) {
ServerSocket s = null;
s = new ServerSocket(9999);
Socket s = server.accept();
}

}

Motta meldinger

Når tilkoblingen er gjort, kan programmereren lese innspill fra stikkontakten. Denne inngangen, meldingen fra en annen skravling, vil lese inn i en "BufferedInput" objekt, som deretter kan du lese informasjonen i en streng variabel:

BufferedReader input = new BufferedReader (ny InputStreamReader (

s.getInputStream()));

String melding = input.readline ();

lagring av meldinger

Når du mottar meldinger fra den eksterne datamaskinen, kan det være gunstig å lagre dem i en matrise slik at en multippel meldingen ikke er tapt. I praksis hva programmerer kan gjøre er å lagre meldinger i en matrise med en rullerende "mens" loop. For hver mottatte melding, vil løkken lagre en melding i rekken, og gå videre til neste indeks, innpakning rundt den første indeksen når matrisen er full:

String [] meldinger = new String [20];
int index = 0;
message = input.readLine ();

while (melding! = null) {
meldinger [index] = melding;
index ++;
message = input.readLine ();
}

sende meldinger

Programmereren kan også bruke socket gjenstander for å koble til en ekstern datamaskin som lytter for kommunikasjon. Ved å bruke kontakten for å koble til, kan programmereren åpne en output stream til å sende en melding til brukeren. Hun oppnår dette ved å bruke en Printwriter objekt, feste den til kontakten output stream og skriftlig via stikkontakten:

Socket koble = new Socket ( "http: \ www.computer.domain", 9999);

ut = new Printwriter (connect.getOutputStream (), true);
out.print ( "Sende melding ...");