Comunicação através de datagramas
Publicado por Perfil removido 22/07/2007
[ Hits: 7.250 ]
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.
//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();
}
}
Um pouco de Java e Sockets. (Fonte 03: Recebedor)
Um pouco de Java e Sockets. (Fonte 02: Enviador)
nome para ip & ip para nome com ping
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Trazendo de volta o Serviços em Segundo Plano no Plasma6
Desenvolvi um programa de hot corner (você colocar o mouse nos cantos)... (1)
Problema com uso do sed [RESOLVIDO] (3)
Atualizei meu ubuntu e desliguei e ele não inicia corretamente (13)









