Comunicação através de datagramas
Publicado por Perfil removido 22/07/2007
[ Hits: 7.216 ]
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();
}
}
nome para ip & ip para nome com ping
Nome da máquina e o endereço IP sem socket.
Um pouco de Java e Sockets. (Fonte 03: Recebedor)
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
É normal não gostar de KDE? (8)
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









