March 21
Chat Server tradizionalmente consentono a due o più utenti di comunicare one-to-one attraverso messaggi testuali sui loro computer. In sostanza, un server di chat in ascolto per i messaggi in arrivo e invia messaggi in uscita. In Java, è possibile creare una classe server di chat che prende i flussi di input e output definiti dall'utente già assegnati agli sport seriali, ascolta i messaggi in arrivo da un altro computer e invia i messaggi in uscita creati dall'utente.
1 Impostare definizioni di base client di chat e la funzione:
import
java.net.;
import java.io.;
import java.awt. *;
public class ChatClient estende Telaio implementa Runnable {
ChatClient pubblico (String titolo, InputStream i, OutputStream o) {}
public void run () {}
sendMessage public static void (msg String) {}
}
2 Impostare il client di base e ascoltatore filo come il costruttore della classe. Questo costruttore accetta un ingresso (variabile "i") e flusso di uscita (variabile "o"), li converte in tamponata flussi di dati e avvia un thread di ascolto di aspettare per i messaggi:
// variabili di classe ChatClient
DataInputStream protetto i;
protetta DataOutputStream o;
protetta ascoltatore Discussione;
ChatClient pubblico (InputStream i, OutputStream o) {
this.I = new DataInputStream (nuova BufferedInputStream (i))
this.o = new DataOutputStream (nuova BufferedOutputStream (o));
ascoltatore = new Thread (questo);
listener.start ();
}
3 Definire il metodo di "run", che viene eseguito quando inizia il thread di ascolto. Questo metodo controlla il flusso di dati di input, aggiunge tutti i dati in entrata per la stringa "ricevuto" e termina quando la connessione si chiude.
public void run () {
String ricevuto = new String ();
try {
while (true) {
String incoming = i.readUTF ();
received += (line + "\n");
}
} catch (IOException e) {
e.printStackTrace ();
}
}
4 Definire una funzione "sendMessage", che invierà i dati attraverso la connessione di uscita, sotto forma di una stringa:
sendMessage public void (msg String) {
o.writeUTF (msg);
o.flush ();
} catch (IOException ex) {
ex.printStackTrace();
listener.stop ();
}
}