Comunicação através de datagramas

Publicado por Perfil removido 22/07/2007

[ Hits: 6.995 ]

Download Programa.txt




Este script mostra um simples exemplo da utilização de datagramas na comunicação entre dois computadores.

Temos a classe principal que contém duas Threads (servidor e cliente funcionando ao mesmo tempo), classe servidor e a classe cliente.

Obrigado.
Espero ter ajudado.

  



Esconder código-fonte

//Classe principal
public class Principal {

   public static void main(String args[]){
      Servidor threadservidor= new Servidor();
      Cliente threadcliente= new Cliente();

      threadservidor.start();
      threadcliente.start();

      threadcliente.setPriority(1);
      threadservidor.setPriority(10);
   }
}

//Classe Cliente
public class Cliente extends Thread{

   private int portareceber= 5000;
   private DatagramSocket datagram=null;
   private byte dados[]= new byte[2048];
   private String mensagem= null;

   public void run(){

      try {
         datagram= new DatagramSocket(5000);
         DatagramPacket pacote = new DatagramPacket(dados, dados.length);

         do{
            //Recebendo dados.
            datagram.receive(pacote);

            //Transformando bytes em String.
            mensagem = new String(pacote.getData(),0,pacote.getLength());

            //Imprimindo mensagem.
            System.out.print("Mensagem c: ");
            System.out.print(mensagem);

         }while(!mensagem.equals("exit"));

      }catch(Exception e){System.out.print("Erro.");}
   datagram.close();
   }
}

//Classe Servidor
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class Servidor extends Thread {

   private int portaenviar = 5000;
   private String mensagem = "";
   private String enderecoenviar = "leserc-17";
   private byte dados[] = null;
   DatagramSocket datagram = null;
   BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));

   public void run() {

      try {
         //Instanciando.
         datagram = new DatagramSocket(portaenviar);

         //Criando endereco IP.
         InetAddress enderecoIP = InetAddress.getByName(enderecoenviar);

         do {
            // Lendo mensagem.
            System.out.print("Mensagem s: ");
            mensagem = ler.readLine();

            // Tranformando em bytes.
            dados = mensagem.getBytes();

            // Criando o pacote datagram.
            DatagramPacket pacote = new DatagramPacket(dados, dados.length,
                  enderecoIP, portaenviar);

            // Enviando pacote.
            datagram.send(pacote);

         } while (!mensagem.equals("exit"));
      } catch (Exception e) {   System.out.print("Erro servidor.");
      }
      datagram.close();
   }

}

Scripts recomendados

Um pouco de Java e Sockets. (Fonte 02: Enviador)

nome para ip & ip para nome com ping

Um pouco de Java e Sockets. (Fonte 04: Main)

Script de comunicação

Nome da máquina e o endereço IP sem socket.


  

Comentários
[1] Comentário enviado por MAPOGOS em 16/12/2012 - 14:44h

Quando se fala em redes acho bem mais interessante,da pra ter uma noção de funcionamento de TCP/IP ou roteamento explicitado nas class extendeds
SE tiver tem algum exemplo de funcionamento de protocolo de redes de cominicação intranet ou internet mesmo.
Entendo como :

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package projeto Rede;

import javax.swing.JOptionPane;

/**
*
* @author aluno
*/








public class PojetoRede {
package projetoRede;

/**
*
* @author aluno
*/




class MODEM {






pivate class Roteador extendsREDE() {


int basE;


}


private Roteador(){


super();


}


public Roteador(int configuraçõesa, intconfiguraçõesb){


int configuraçõesa= a;


int configuraçõesb =b;
-----------------------------------------------------------------------------------------l;


COMO Posso fazer com que um classe MODEM seja principal e outras como roteador DEsktop's e impressoras sejam extendeds desta class MODEM.

Então acho interessante criar algo em relação a segurança TCP/IP como devo procreder em java;;Obrigado;(estudante);





















































Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts