Chat servere tradisjonelt kan to eller flere brukere å kommunisere en-mot - en gjennom tekstlige meldinger på sine datamaskiner . Hovedsak , lytter en chat -server for innkommende meldinger og sender utgående meldinger . I Java , kan du opprette en Chat Server klasse som tar brukerdefinert input og output strømmer allerede er tilordnet til serielle sport, lytter etter innkommende meldinger fra en annen datamaskin og sender utgående meldinger som er opprettet av brukeren. Du trenger
Java Development Kit ( JDK )
Vis flere instruksjoner
en
Sett opp grunnleggende chat-klient og funksjonsdefinisjonene : en
import java . net * ; . import java.io. * ; import java.awt * ; .
public class ChatClient strekker Frame implementerer kjørbart {public ChatClient (String tittel, InputStream i, OutputStream o) { } public void run ( ) { } public static void SendMessage ( String msg ) { } }
2
Sett opp grunnleggende klient og tråd lytteren som klassens konstruktør . Denne konstruktøren tar en inngang (variabel "i" ) og output stream (variabel " o ") , konverterer dem til bufret datastrømmer og starter en lytter tråd for å vente på meldinger : en
//ChatClient klasse variablesprotected DataInputStream i; beskyttet DataOutputStream o; beskyttet Tråd lytteren ;
offentlig ChatClient ( InputStream i, OutputStream o) { dette.Jeg = new DataInputStream ( ny BufferedInputStream ( i) ) this.o = new DataOutputStream ( ny BufferedOutputStream ( o )); lytteren = new Thread (denne) ; listener.start (); }
3
Definere "run "-metoden , som utføres når lytteren tråden begynner. Denne metoden sjekker inn datastrømmen , føyer innkommende data til " mottatt" streng og opphører når tilkoblingen lukkes.
Public void run () {
String mottatt = new String ( ) ;
try { while ( true) { String innkommende = i.readUTF (); mottatt + = ( tråd + "\\ n" ); } } catch ( IOException e ) { e.printStackTrace ( ) ;} }
4
Definer en " SendMessage "-funksjon , som vil sende data over utgangstilkobling i form av en streng : en
public void SendMessage ( String msg ) { o.writeUTF ( msg ) ; o.flush (); } catch ( IOException ex ) { ex.printStackTrace (); listener.stop (); } }