La jerarquía de objetos Java incluye muchas clases que se ocupan de muchos tipos de tipos de datos y conexiones de datos . El " Socket " y clases " ServerSocket " representan conexiones simples un programa Java puede hacer a otro programa a través de los puertos de un ordenador. A través de estos objetos , un programa Java puede recibir datos o mensajes , tales como texto, desde un equipo remoto . Así , por ejemplo, un simple cliente de chat escrito en Java correría Socket y ServerSocket objetos para enviar y recibir mensajes. Chatear Server y ServerSocket
En su forma más básica , un servidor de chat Java utilizará un objeto ServerSocket para escuchar de una conexión. El método "aceptar" obliga al programa a esperar hasta que se establezca una conexión. Este método devuelve un objeto " Socket " que representa la conexión aceptado. Como se ilustra en el siguiente ejemplo de código , el programa de chat siempre estará atento a una conexión entrante en un puerto en particular y devolver la caja de conexión :
importación java.net.ServerSocket ; java.net.Socket importación , importación java . io.BufferedReader ; java.io.InputStreamReader importación;
clase
chat {
void (String [] args ) { public static ServerSocket s = null; s = new ServerSocket (9999 ) ; socket s = server.accept () ;} }
recibir mensajes
Una vez establecida la conexión , el programador puede leer la entrada de la toma . Esta entrada , el mensaje de otra charla , se lee en un objeto " BufferedInput " , que puede luego leer su información en una variable String :
entrada BufferedReader
= new BufferedReader ( nuevo InputStreamReader ( s.getInputStream () )); String mensaje = input.readline ();
almacenar mensajes
al recibir mensajes desde el equipo remoto, puede ser beneficioso para almacenarlos en una matriz de modo que no se pierde un mensaje múltiple. En la práctica, lo que el programador puede hacer es almacenar mensajes en una matriz con un bucle "while" revolving . Para cada mensaje recibido , el bucle almacenar un mensaje en la matriz y pasar al siguiente índice, envolviendo al primer índice cuando la matriz está llena :
String [ ] mensajes = new String [ 20 ] ; int index = 0 ; message = input.readLine ();
while ( mensaje = null ) { mensajes [ index] = mensaje; index + + ; message = input.readLine () ;}
< br >
Envío de mensajes
El programador también puede utilizar objetos de socket para conectarse a un equipo remoto que está a la escucha de las comunicaciones . Al utilizar el zócalo para conectar , el programador puede abrir un flujo de salida para enviar un mensaje al usuario . Ella logra esto mediante el uso de un objeto PrintWriter , conectarla a la corriente de la toma de salida y la escritura a través de la toma :
zócalo de conexión = new Socket ( "http : \\ \\ www.computer.domain " , 9999) ;
a = new PrintWriter ( connect.getOutputStream () , true) ; out.print ( "Enviando mensaje ...");