server Chat tradizionalmente permettere due o più utenti di comunicare one- on -one attraverso messaggi testuali sui loro computer . In sostanza , un server di chat in ascolto per i messaggi in entrata e invia i messaggi in uscita . In Java , è possibile creare una classe Server Chat che riceve l'input definita dall'utente e flussi in uscita già assegnate agli sport di serie , ascolta i messaggi in arrivo da un altro computer e invia i messaggi in uscita creati dall'utente . Cose che ti serviranno
Java Development Kit ( JDK ) economici Mostra più istruzioni
1
impostare client di chat di base e definizioni di funzioni :
import java . net * , . import java.io. *; import java.awt * , .
ChatClient public class estende frame implementa Runnable {public ChatClient ( String titolo , InputStream i, OutputStream o) { } public void run ( ) { } public static void sendMessage (String msg ) { } }
2
impostare il client di base e di thread di ascolto come il costruttore della classe . Questo costruttore accetta un ingresso ( variabile "i" ) e flusso di uscita ( variabile " o") , li converte in flussi di dati nel buffer e avvia un thread di ascolto di aspettare per i messaggi :
//classe ChatClient variablesprotected DataInputStream i; protetta DataOutputStream o; protetta ascoltatore discussione ;
pubblico ChatClient ( InputStream i, OutputStream o) { this.I = new DataInputStream ( nuovo BufferedInputStream ( i) ) this.o = new DataOutputStream ( nuovo BufferedOutputStream ( o)) ; listener = new Thread ( this); listener.start (); }
3
Definire il metodo "run" , che viene eseguito quando inizia il thread di ascolto . Questo metodo controlla il flusso di dati di input , aggiunge tutti i dati in arrivo alla stringa " ricevuto" e termina quando la connessione si chiude.
Public void run ( ) {
Stringa ricevuta = new String ( ) ;
try { while (true ) { String in entrata = i.readUTF (); ricevuto + = ( linea + " \\ n" );} } catch ( IOException e) { e.printStackTrace ( ) ; } }
4
definire una funzione " sendMessage ", che invia i dati tramite la connessione di uscita sotto forma di una stringa:
public void sendMessage (String msg ) { o.writeUTF ( msg ) ; o.flush (); } catch ( IOException ex) { ex.printStackTrace (); listener.stop (); } }