Java Code Chat

May 13

La gerarchia di oggetti Java include molte classi che gestiscono molti tipi di tipi di dati e connessioni dati. La "presa" e "classi ServerSocket" rappresentano semplici connessioni un programma Java può fare a un altro programma attraverso i porti di un computer. Attraverso questi oggetti, un programma Java può ricevere dati o messaggi, come testo, da un computer remoto. Così, per esempio, un semplice client di chat scritto in Java correrebbe oggetti socket e ServerSocket per inviare e ricevere messaggi.

Chat Server e ServerSocket

Nella sua forma più semplice, un server di chat Java utilizzerà un oggetto ServerSocket ad ascoltare per una connessione. Il metodo "accetta" forza il programma di aspettare fino a quando viene stabilita una connessione. Questo metodo restituisce un oggetto "Socket" che rappresenta la connessione accettata. Come illustrato nel seguente esempio di codice, il programma di chat sarà sempre in ascolto per una connessione in entrata su una particolare porta e tornare alla presa di connessione:

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

class Chat {

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

}

ricezione di messaggi

Una volta stabilita la connessione, il programmatore può leggere l'input dalla presa. Questo ingresso, il messaggio da un altro chiacchiere, leggerà in un oggetto "BufferedInput", che può quindi leggere le sue informazioni in una variabile stringa:

BufferedReader ingresso = new BufferedReader (nuovo InputStreamReader (

s.getInputStream()));

String message = input.readline ();

la memorizzazione dei messaggi

Quando si ricevono messaggi dal computer remoto, può essere utile per memorizzarli in una matrice in modo che un messaggio multipla non è perso. In pratica, ciò che il programmatore può fare è archiviare i messaggi in un array con un ciclo "while" revolving. Per ogni messaggio ricevuto, il ciclo si memorizza un messaggio nella matrice e passare al successivo punto di indice, avvolgendosi attorno al primo indice quando la matrice è piena:

String [] messaggi = new String [20];
int index = 0;
messaggio = input.readLine ();

while (messaggio! = null) {
messaggi [index] = messaggio;
Indice ++;
messaggio = input.readLine ();
}

Invio di messaggi

Il programmatore può anche utilizzare oggetti socket per la connessione a un computer remoto che è in ascolto per le comunicazioni. Utilizzando il presa per collegare, il programmatore può aprire un flusso di output per inviare un messaggio all'utente. Lei compie questo utilizzando un oggetto PrintWriter, collegarlo al flusso di output del socket e scrittura attraverso la presa:

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

out = new PrintWriter (connect.getOutputStream (), true);
out.print ( "il messaggio ...");