| Bom, estou aqui incluindo essa dica para quem ainda não sabe ou deseja aprender a usar Sockets na plataforma Java. Como estou montando um programa Java Cliente, essa dica vai ensinar a montar um Socket para comunicar-se com o Servido. 
Construindo o Socket: Socket => java.net.Socket; É o principal. Ele vai fazer a comunicação\conexão com o servidor.
 BufferedReader => java.io.BufferedReader; É o que realizará a leitura de uma sentença mandada do Servidor, sendo de qualquer tipo: Integer, String, Char, Float, Boolean.. É importante ter noção que o programa pára para esperar a resposta. Ou seja, o comando readLine vai ficar no aguardo.
 InputStreamReader => java.io.InputStreamReader; Será usado para ajudar na construção do BufferedReader; Não vai ter tanta importância nessa dica. 
 PrintWriter => java.io.PrintWriter; Este aqui mandará informações ao servidor. Usa-se o comando println para enviar uma linha texto (String).
 
 
 
Socket Conexao = new Socket(Servidor,Porta);
 OBS: Quando o Socket é criado, ele automaticamente conecta. Se não conseguir conectar, ele cria uma excessão tipo IOException; Assim, deve-se usá-lo com a expressão try.
 
 Construindo o BufferedReader:
 
 
 
BufferedReader input = new BufferedReader(new InputStreamReader(Conexao.getInputStream()));
 OBS: Usamos o InputStreamReader apenas para criar, conforme dito antes. Conexao é o nome do Socket conectado.
 
 Construindo o PrintWriter:
 
 
 
PrintWriter output = new PrintWriter(Conexao.getOutputStream(),true);
 OBS: Conexão é o nome do Socket. O parâmetro true determina que o PrintWriter vai ser autoflush, ou seja, assim que o comando println for executado, ele automaticamente manda a mensagem para o Servidor, sem ter que usar o comando flush;
 
 Segue abaixo uma classe exemplo de como usar o Socket. Tentei comentar o máximo possível para evitar dúvidas.
 
 
 
//as importsimport java.net.Socket;
 import java.io.BufferedReader;
 import java.io.PrintWriter;
 import java.io.InputStreamReader;
 
 public class ListProcess extends Thread  {
 
 Socket conexao; //socket
 MeuFrame frame = new MeuFrame; //define e cria o Meu Frame
 
 public ListProcess() {
 //realiza a conexão no servidor local na porta 7847
 try {
 Socket conexao = new Socket("localhost", 7847 );
 } catch (IOException Ex) { //não consegui conectar
 this.interrupt();  // finaliza a Thread
 }
 
 }
 
 public void run(){ // para executar o processo
 if (conexao.isConnected() == true) { // se está conectado
 try {
 // criar os objetos que vão ler a entrada e saída do Socket
 BufferedReader input = new BufferedReader(new InputStreamReader(this.conexao.getInputStream())); //entrada
 
 PrintWriter output = new PrintWriter(this.conexao.getOutputStream(),true); // saída
 
 output.println("verprocessos"); // manda a mensagem pro servidor
 
 String Rc = "$beginlistprocess"; //nossa variável de controle do servidor
 
 //inicia um loop onde enquanto a mensagem não for a final e a conexão estiver ativa, ele inclui em uma lista no Frame os valores recebidos.
 while ((Rc!="$fimdalista")&&(Conexao.isConnected()==true)) {
 //espera a resposta e coloca na variável
 Rc=input.readLine();
 //se a mensagem não é a final, então escreva na lista
 if (Rc!="$endlistprocess")
 //este item vai ser considerado Deprecation, mas ele funciona corretamente.
 this.main.ListProcess.addItem(Rc);
 }
 } catch (Exception ex) { //se ocorrer alguma excessão.
 }
 }
 }
 }
 Espero ter ajudado.
 
 
 Outras dicas deste autorNenhuma dica encontrada. Leitura recomendada    Sinal EOF ou EOT com sockets   Iniciando JBoss sem privilégios - Erro: "java.net.SocketException: Permission denied" [Resolvido]   Transferência de arquivos binários em Java   Sistemas Distribuídos - Aplicação simples Java RMI   Arquivos de ajuda de um pacote instalado no Linux 
  
 
 Comentários Nenhum comentário foi encontrado. 
 
 
 
 
	
	PatrocínioDestaquesArtigosDicasTópicosTop 10 do mêsScripts |