Preciso enviar uma informação via UDP! AJUDEMM ME PLS!

3 respostas
J

Boa Tarde,

Eu sou programador em VB, mais agora eu estou migrando pra Java pq percebi q VB Jah era :roll: :lol:
Preciso enviar uma informação pra uma placa controladora em ASCII
Preciso criar um aplicativo pequeno q nem se fosse no VB.
Só que precisa ter a opção de IP , Porta e Mascara de Rede.

Qualquer ajuda é bem vinda!!

Muito Obrigado!!

3 Respostas

J

AA…uma obs: Se tiver algum swing pra usa ou uma biblioteca eh melhor, fica mais fácil!

Vlw!

java.rco

Cara é só usar classe Socket do Java, da uma estudada nela no pacote java.net.*

É bem simples de implementar.

O mais importante é vc saber os conceitos e diferençcas entre TCP e UDP

J

Então amigo , olha só…

Eu tenho um cliente e um servidor …igual á um chat…
eu preciso q toda vez q o cliente envia para o servidor, o servidor envie para um determinado ip e porta local.
é simples, só q eu estou apanhando muitoooo…rsrs :lol: :?

Segue o código abaixo

Cliente:

[b]import java.io.;
import java.net.
;

public class ClienteDatagrama

{

private DatagramSocket socket=null;

private DatagramPacket recvPacket, sendPacket;
public static void main(String[] args)

{

DatagramSocket socket=null;

DatagramPacket recvPacket, sendPacket;

try

{

socket=new DatagramSocket();

InetAddress hostAddress=InetAddress.getByName(127.0.0.1);

DataInputStream userData=new DataInputStream(System.in);

while (socket !=null)

{

//leitura da mensagem para enviar para o servidor Datagrama

System.out.print(Mensagem para enviar: );

String userString=userData.readLine();

if ((userString==null)||(userString.equals(””)))

return;
//converte o String para um Array de bytes
    byte sendbuf[]=new byte[userString.length()];
    userString.getBytes(0,userString.length(),sendbuf,0);
    sendPacket=new DatagramPacket(sendbuf, sendbuf.length, hostAddress, 4545);

    //envia o Datagrama para o servidor
    socket.send(sendPacket);

    //recebe o Datagrama do servidor
    recvPacket=new DatagramPacket(new byte[512], 512);
    socket.receive(recvPacket);

    //exibe na tela do cliente a mensagem de eco do servidor Datagrama
    System.out.print("Mensagem recebida (eco): ");
    System.out.write(recvPacket.getData(),0,recvPacket.getLength());
    System.out.print("\r\n");
    System.out.print("\r\n");
  }
}
catch(SocketException se)
{
  System.out.println("Erro no ClienteDatagrama: "+se);
}
catch(IOException ioe)
{
  System.out.println("Erro no ClienteDatagrama: "+ioe);
}

}
} [/b]

Servidor:

[b]import java.io.;
import java.net.
;

public class ServidorDatagrama

{

public static void main(String[] args)

{

DatagramSocket socket=null;

DatagramPacket recvPacket, sendPacket;

try

{

System.out.println("=== ®®® Servidor de eco no ar !!! ¯¯¯ ===");

socket=new DatagramSocket(4545);

while(socket!=null)

{

recvPacket=new DatagramPacket(new byte[512], 512);

socket.receive(recvPacket);

sendPacket=new DatagramPacket(

recvPacket.getData(), recvPacket.getLength(),

recvPacket.getAddress(), recvPacket.getPort());

socket.send(sendPacket);

System.out.println(Mensagem recebida do Cliente: +recvPacket.getAddress()+:+recvPacket.getPort());

System.out.print("=> “);

System.out.write(recvPacket.getData(),0,recvPacket.getLength());

System.out.print(”\r\n");

System.out.print("\r\n");

}

}

catch(SocketException se)

{

System.out.println("Erro no ServidorDatagrama: "+se);

}

catch(IOException ioe)

{

System.out.println("Erro no ServidorDatagrama: "+ioe);

}

}

}[/b]

Desde já agradeço!!!

Criado 25 de junho de 2008
Ultima resposta 27 de jun. de 2008
Respostas 3
Participantes 2