Resposta UDP de servidor para terminal

0 respostas
T

Nao to conseguindo fazer com que o servidor envie uma resposta para o cliente para certificar que a mensagem foi recebida, entenderam?

O terminal é:

import <a href="http://java.net">java.net</a>.<em>;

import java.util.Scanner;

import java.nio.</em>;

public class Cli

{

public static void main (String [] args)

{

try

{

DatagramSocket ds = new DatagramSocket(1500);
//criar um pacote e empacotar o número inteiro
		Scanner s = new Scanner(System.in);
		System.out.println("Digite um número: ");
		int numero = s.nextInt();
                    System.out.println("Outro:");
                    int numero2 = s.nextInt();
                    System.out.println("Outro");
                    int numero3 = s.nextInt();
                    System.out.println("Frase: ");
                    String frase = s.next();
                    int tam = frase.length();
                    int i;
		ByteBuffer buffer = ByteBuffer.allocate(500);
		buffer.putInt(numero);
                    buffer.putInt(numero2);
                    buffer.putInt(numero3);
                    buffer.putInt(tam);
                    for(i = 0; i < tam; i++)
                    {
                        buffer.putChar(frase.charAt(i));
                    }
		byte [] dados = buffer.array();

		DatagramPacket dp = new DatagramPacket(dados, 500);

		//envia para a porta 1400 do servidor
		dp.setPort(1400);
		dp.setAddress(InetAddress.getByName("localhost"));

		//transmitir pacote para o servidor
		ds.send(dp);

                    ds.close();
	}
	catch(Exception e)
	{

            }
    }

}

e o servidor;

import <a href="http://java.net">java.net</a>.<em>;

import java.nio.</em>;

public class Ser

{

public static void main (String [] args)

{

try

{

//Cria um socket UDP para receber dados na porta 1400

DatagramSocket ds = new DatagramSocket(1500);
//Criar um pacote vazio para receber os dados
		//(Vai receber 4 bytes do cliente)
		byte [] dados = new byte[500];

		DatagramPacket dp = new DatagramPacket(dados, 500);

		//aguardar o recebimento de um pacote
		ds.receive(dp);

		//se chegou aqui, quer dizer que recebeu um pacote
		ByteBuffer buffer = ByteBuffer.allocate(500);
		buffer.put(dados);
		int numero = buffer.getInt(0);
                    int numero2 = buffer.getInt(4);
                    int numero3 = buffer.getInt(8);
                    int tam = buffer.getInt(12);
                    int i;
                    String frase = "";
                    for(i = 16; i < 16+(tam*2); i++)
                    {
                        frase += buffer.getChar(i);
                        i++;
                    }
		System.out.println("Número recebido pelo servidor é " +	numero);
                    System.out.println("Outro: " + numero2);
                    System.out.println("Outro " + numero3);
                    System.out.println("Frase: " + frase);                     


                    ds.close();
                
	}
	catch(Exception e)
	{
	}
}

}

Se alguem puder ajudar ai, agradeço.
Flw

Criado 24 de junho de 2011
Respostas 0
Participantes 1