Comunicação através de datagramas
Publicado por Perfil removido 22/07/2007
[ Hits: 7.312 ]
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 01: AbstractTransfer)
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Ajudante para criar dicas e artigos no VOL (31)
Hardware (corpo), Software (mente) e Kernel (conexão) (0)
Tentando fazer um "linux ricing" mas falhando miseravelmente... (3)









