A hierarquia de objetos Java inclui várias classes que lidam com muitos tipos de tipos de dados e conexões de dados. O " socket" e classes " ServerSocket " representam ligações simples de um programa Java pode fazer para outro programa através dos portos de um computador. Através desses objetos, um programa Java pode receber dados ou mensagens , como texto , a partir de um computador remoto. Assim, por exemplo , um cliente de chat simples escrito em Java seria executado soquete e ServerSocket objetos para enviar e receber mensagens . Servidor chat e ServerSocket
Na sua forma mais básica, um servidor de chat Java vai usar um objeto ServerSocket para ouvir uma conexão. O método de "aceitar" força o programa de esperar até que uma conexão é estabelecida . Este método retorna um objeto de " soquete ", representando a ligação aceita. Como ilustrado no seguinte exemplo de código , o programa de bate-papo será sempre ouvir por uma conexão de entrada em uma porta específica e retornar a tomada de conexão :
java.net.ServerSocket importação; java.net.Socket importação , importação java . io.BufferedReader ; java.io.InputStreamReader importação;
classe chat {
public static void main ( string [] args ) { ServerSocket s = null; s = new ServerSocket ( 9999) ; soquete s = server.accept (); }}
recebendo mensagens
Uma vez que a conexão é feita , o programador pode ler a entrada da tomada. Esta entrada , a mensagem de uma outra conversa , vai ler em um objeto " BufferedInput " , que pode ler suas informações em uma variável String :
BufferedReader entrada = new BufferedReader (new InputStreamReader ( s.getInputStream () ) ); string message = input.readline ();
armazenar mensagens
ao receber mensagens do computador remoto, ele pode ser benéfico para armazená-los num arranjo de modo que uma mensagem múltipla não é perdida . Na prática, o que o programador pode fazer é armazenar mensagens em uma matriz com um revolving ", enquanto" loop. Para cada mensagem recebida , o loop irá armazenar uma mensagem na matriz e passar para o próximo índice , envolvendo o primeiro índice quando a matriz está cheia :
String [] mensagens = new String [20] ; int index = 0; message = input.readLine ();
while ( mensagem = null !) { mensagens [ índice ] = mensagem ; índice + +; message = input.readLine ();}
< br >
envio de mensagens
O programador também pode usar objetos de soquete para se conectar a um computador remoto que está aguardando as comunicações. Ao utilizar a tomada de ligação, o programador pode abrir um fluxo de saída para enviar uma mensagem para o utilizador . Ela faz isso usando um objeto PrintWriter , anexá-lo ao fluxo de saída do socket e escrever através do socket:
Soquete conectar = new Socket ( " http: \\ \\ www.computer.domain " , 9999) ;
out = new PrintWriter ( connect.getOutputStream () , true); out.print ( " Enviando mensagem ... ");