DatagramPacket El uso de UDP

Nick WEI:

Estoy tratando de utilizar DatagramPacket en Java para comunicarse con el servidor y el cliente. Mi objetivo es: cuando el cliente dice: Hola, y el servidor dice: Hola, Mucho gusto. Así que uso una condición que si achive esto. Sin embargo, cuando la entrada es "Hola", parece que sikp la condición if (Yo ya la depuración). Me pregunto por qué sucedió esto? Parece demasiado extraño. ¿Puede alguien ayudarme con este problom? ¡Cualquier ayuda sería apreciada! ¡Gracias! Código: Cliente:

public static void main(String[] args) {
        System.out.println("This is Server");
        DatagramSocket server = null;
        byte[] container = new byte[1024];
        try {
            server = new DatagramSocket(9998);
        } catch (SocketException e) {
            e.printStackTrace();
        }
        DatagramPacket dPacket = new DatagramPacket(container, container.length);   
        try {
            while(true) {               
                server.receive(dPacket);
                byte[] datas = dPacket.getData();
                String temp = new String(datas);
                if (temp.equals("Hello")) {
                    System.out.println("Hi~!Nice to meet you!");
                }else if (temp.equals("How are you?")) {
                    System.out.println("I am good!");
                }else {
                    System.out.println("Have a good day");
                }
                if (temp.equals("exit")) {
                    break;
                }


            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        server.close();
    }

cliente:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("This is Client");
        try {
            DatagramSocket client = new DatagramSocket(8888);
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String input = "";
            while(!input.equals("exit")) {
                input = br.readLine();
                byte[] msg = input.getBytes();
                DatagramPacket dPacket = new DatagramPacket(msg, msg.length,new InetSocketAddress("localhost",9998));
                client.send(dPacket);
            }


            client.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
shazin:

Intente lo siguiente cuando se reciben datos.

byte[] datas = dPacket.getData();
String temp = new String(datas, 0, dPacket.getLength());

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=293039&siteId=1
Recomendado
Clasificación