La hiérarchie d'objets Java inclut de nombreuses classes qui gèrent de nombreuses sortes de types de données et des connexions de données . «Socket » et les classes ServerSocket " " représentent les connexions simples, un programme Java peut apporter à un autre programme à travers les ports d'un ordinateur. Grâce à ces objets , un programme Java peut recevoir des données ou des messages , tels que le texte , à partir d'un ordinateur distant. Ainsi, par exemple , un client de messagerie instantanée simple, écrit en Java irait Socket et ServerSocket objets à envoyer et recevoir des messages. Serveur de chat et ServerSocket
À la base , un serveur de chat Java va utiliser un objet ServerSocket pour écouter une connexion. Le procédé " accepter " force le programme à attendre jusqu'à ce qu'une connexion soit établie. Cette méthode renvoie un objet "socket " représentant la connexion acceptée . Comme illustré dans l'exemple de code suivant, le logiciel de chat sera toujours à l'écoute pour une connexion entrante sur un port particulier et retourner la prise de connexion :
importation java.net.ServerSocket ; importation java.net.Socket ; import java . io.BufferedReader ; java.io.InputStreamReader d'importation;
classe
chat {
public static void main ( string [] args ) { ServerSocket s = null; s = new ServerSocket (9999) ; socket s = server.accept (); }}
réception de messages
Une fois la connexion établie , le programmeur peut lire l'entrée de la prise . Cette entrée , le message d'un autre bavardage , va lire dans un objet " BufferedInput " , qui peut alors lire les données dans une variable chaîne de caractères:
entrée BufferedReader
= new BufferedReader ( nouveau InputStreamReader ( s.getInputStream () ) ) ; String message = input.readline ();
stocker les messages
Lors de la réception des messages de l'ordinateur distant, il peut être avantageux de les stocker dans une matrice de sorte qu'un message multiple n'est pas perdu. Dans la pratique, ce que le programmeur puisse faire est de stocker les messages dans un tableau avec une boucle "while" revolving . Pour chaque message reçu , la boucle va stocker un message dans le tableau et de passer à l'index suivant , s'enroulant autour du premier indice quand le tableau est complet :
String [ ] = new String messages [20]; int index = 0; message = input.readLine ();
while ( message = null ! ) { messages [index] = message, index + +; message = input.readLine ();}
< br >