Chat servere traditionelt tillader to eller flere brugere at kommunikere en-til- en gennem tekstuelle beskeder på deres computere. Væsentlige, en chat -server lytter efter indgående meddelelser og sender udgående meddelelser . I Java, kan du oprette en Chat Server klasse, der tager brugerdefineret input og output streams allerede er tildelt til serielle sport, lytter efter indkommende beskeder fra en anden computer og sender udgående meddelelser oprettet af brugeren . Ting du skal
Java Development Kit ( JDK )
Vis Flere Instruktioner
1
Opsætning grundlæggende chat-klient og funktionsdefinitioner : Hej
import java . net * ; . import java.io. * , import java.awt * ; .
public class ChatClient udvider Frame implementerer Runnable {public ChatClient (String titel, InputStream i, OutputStream o) {} public void run () { } public static void SendMessage (String msg ) { }}
2
Opsæt grundlæggende klient og tråd lytteren som klassen konstruktør. Denne konstruktør tager et input (variabel "i" ) og output strøm (variabel "o" ) , konverterer dem til buffer datastrømme og starter en lytte tråd til at vente på meddelelser : Hej
//ChatClient klasse variablesprotected DataInputStream i; beskyttet DataOutputStream o; beskyttet Thread lytteren ,
offentlig ChatClient ( InputStream i, OutputStream o) { this.I = new DataInputStream (ny BufferedInputStream ( i)) this.o = new DataOutputStream (ny BufferedOutputStream ( o )), lytteren = ny tråd ( dette) listener.start ( );}
3
Definer "run" -metoden, som udfører når lytteren tråden begynder. Denne metode kontrollerer indgående datastrøm , tilføjer alle indgående data til "modtaget " streng og ophører, når forbindelsen lukkes.
Public void run () {
String modtaget = new String ( ),
try { while ( true) { String indgående = i.readUTF (); modtaget + = ( line + "\\ n" );}} catch ( IOException e ) { e.printStackTrace () ;}}
4
Definer en " SendMessage "-funktion , som vil sende data via output forbindelsen i form af en streng : Hej
public void SendMessage (String msg ) { o.writeUTF ( msg ) o.flush ( );} catch ( IOException ex ) { ex.printStackTrace (); listener.stop (); }}