Multi Thread Socket em Java
por Anônimo
Aqui ensino como fazer uma comunicação entre um cliente e um servidor utilizando sockets em Java, o código esta bem comentado, espero que ajude ! =]
Lembrando que para rodar o programa, vá no prompt , localize a pasta onde esta o servidor.java e o cliente.java, então faça o comando:
javac servidor.java
depois
java cliente.java
para testar, em uma janela do prompt você digita:
java servidor
em outra janela, voce digita:
java cliente
então no cliente você colocaria :
11111111111111 (por exemplo)
ao abrir outra janela, coloque:
22222222222222 (por exemplo)
no servidor você verá que fica alternando entre 1111111111 e 222222222222, e assim vai,rs.
Bem eh isso galera, um forte abraço.
import java.net.*; import java.io.*; /** * * @author Valter */ public class Servidor implements Runnable { ServerSocket ss; public Servidor(int porta) throws Exception { // informando em qual porta o servidor estará ouvindo ss = new ServerSocket(porta); // criando uma nova thread e já estou inicializando ela new Thread(this).start(); // mensagem iniicial System.out.println("Servidor ouvindo na porta:" + porta); } public void run() { try { while (true) { // aceitando a conexão com o cliente e inicializando a outra thread new TrataCliente(ss.accept()).start(); System.out.println("Mais um cliente atendido!"); } } catch (Exception e) { e.printStackTrace(); System.exit(1); } } public static void main(String[] args) { try { new Servidor(1024); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } } class TrataCliente extends Thread { private Socket client; public TrataCliente(Socket s) { client = s; } public void run() { try { // aqui vai a sua comunicacao com o cliente ObjectInputStream oi = new ObjectInputStream(client.getInputStream()); // exibindo na tela o que recebemos do nosso cliente System.out.println("Chegou isso:" + oi.readObject()); client.close(); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } }O nosso cliente
import java.net.*; import java.io.*; /** * * @author Valter */ public class Cliente extends Thread { // aqui no nosso caso será o 'localhost' que o ip da própria maquina aonde você executará private String server; // neste caso utilizaremos a partir da porta 1024, sendo que menor são para o Sistema Operacional private int porta; // aqui será a nossa string que será enviada para o servidor e ficará repetindo diversas vezes private String texto; public Cliente(String server, int porta) { try{ // preparando o buffer para ler a stream (no caso o teclado) BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); // estamos lendo a stream que esta vindo do usuário texto = inFromUser.readLine(); }catch(Exception e){ e.printStackTrace(); } this.server = server; this.porta = porta; } public static void main(String[] args) { try { // inicializando quem será nosso servidor (nossa máquina) String server = "localhost"; // o numero da porta int porta = 1024; // o numero máx de clientes que podem ser atendidos, mais que isso começaremos a ter muitas exceções int numeroDeClientes = 10; for (int i = 0; i < numeroDeClientes; i++) { // criando um novo cliente para nosso servidor new Cliente(server, porta).start(); } } catch (Exception e) { e.printStackTrace(); } } public void run() { try { while (true) { // abrindo uma porta para fazermos a comunicação entre nosso cliente e nosso servidor Socket s = new Socket(server, porta); // instaciando para enviarmos ao nosso servidor o que digitamos no cliente ObjectOutputStream oo = new ObjectOutputStream(s.getOutputStream()); // informando aonde estamos conectados System.out.println("Conectado a " + server + ":" + porta); // enviando ao nosso servidor a nossa string oo.writeObject(texto); //fechando a nossa conexão s.close(); } } catch (Exception e) { e.printStackTrace(); } } }
Lembrando que para rodar o programa, vá no prompt , localize a pasta onde esta o servidor.java e o cliente.java, então faça o comando:
javac servidor.java
depois
java cliente.java
para testar, em uma janela do prompt você digita:
java servidor
em outra janela, voce digita:
java cliente
então no cliente você colocaria :
11111111111111 (por exemplo)
ao abrir outra janela, coloque:
22222222222222 (por exemplo)
no servidor você verá que fica alternando entre 1111111111 e 222222222222, e assim vai,rs.
Bem eh isso galera, um forte abraço.
Quem sou eu
Blog Archive
-
▼
2011
(98)
-
▼
outubro
(13)
- Dica GMail : Como visualizar seus e-mail não lidos...
- Adicione abas as suas pastas do Explorer
- Visualizar seu site em diferentes tipos de telas
- Se esse vídeo não te fizer se interessar por físic...
- Como compartilhar mídias entre PC com o Xbox 360
- Estudantes desenvolvem aplicativo de tablet para c...
- Estátua do Ice Cream Sandwich chega ao complexo do...
- Google Translate com modo de conversação
- Multi Thread Socket em Java
- Em memória, Steve Jobs.
- Aos 29 anos ouvindo a própria voz pela primeira vez
- Firefox 7: mais rápido e menos consumo de memória
- Programação do SESC Sorocaba–Outubro 2011
-
▼
outubro
(13)
20 de novembro de 2012 às 19:30
Opa, colega seu código ficou muito bom
Muito bem documentado... Parabéns!!
Muito Obrigado!!