Comunicação através de datagramas
Publicado por Perfil removido 22/07/2007
[ Hits: 7.278 ]
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 da máquina e o endereço IP sem socket.
Um pouco de Java e Sockets. (Fonte 03: Recebedor)
Um pouco de Java e Sockets. (Fonte 02: Enviador)
Um pouco de Java e Sockets. (Fonte 01: AbstractTransfer)
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
De volta para o futuro - ou melhor, para o presente (parte 2) (2)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (7)









