Conversão!... Conteudo do Pacote -> String

2 respostas
L

Ae galera… eu tenho um programinha Cliente/Servidor…

E o cliente, está mandando pra mim um pacote com texto…
que é impresso da seguinte forma:

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

Quebrei a cabeça aqui e não consegui, jogar o conteudo que ele retorna pra dentro de uma variavel… (String)…

e quando eu trabalho fora disso, usando o toString… ele so me retorna o endereço de memoria…

tem como jogar o conteudo para uma variavel?!

[’] leo

2 Respostas

J

Oi

lvitorbh, se vc tiver a implementação dessa classe recvPacket é só olhar o conteúdo dos métodos getData() e getLength()… Se quiser, pode postar aqui

T+

L

Na verdade é um Cliente/Servidor…

Classe Servidor:

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);
}

}
}

Classe Cliente:

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);
}

}
}

Então, na classe servidor, na linha 24… que é o Datagrama que eu gostaria de jogar pra dentro de uma String!..

Criado 28 de março de 2005
Ultima resposta 29 de mar. de 2005
Respostas 2
Participantes 2