简体   繁体   English

客户端无法从服务器接收UDP数据报

[英]Client can't receive UDP datagram from the server

I'm able to send a UDP datagram from my client to my server and receive it, however I can't send a datagram back to the client from my server. 我可以将UDP数据报从客户端发送到服务器并接收,但是我无法将数据报从服务器发送回客户端。

Nothing happens. 什么都没发生。 All I see is: "Hello Server" on the server side, but I don't see: "Hello Client" on the client side. 我所看到的只是:服务器端的“ Hello Server”,但我看不到:客户端的“ Hello Client”。

    final int PACKETSIZE = 100;

//CLIENT
        byte[] newData = "Hello Server".getBytes();
        DatagramPacket newPacket = new DatagramPacket(newData, newData.length, packet.getAddress(), packet.getPort());

        // Send it
        socket.send(newPacket);

        // Set a receive timeout, 2000 milliseconds
        socket.setSoTimeout(2000);

        // Prepare the packet for receive
        packet.setData(new byte[PACKETSIZE]);

        // Wait for a response from the server
        socket.receive(packet);

        // Print the response
        System.out.println("RECEIVED MESSAGE FROM SERVER: " + new String(packet.getData()));

//SERVER
        int port = Integer.parseInt("1024");
        socket = new DatagramSocket(port);

        System.out.println("SERVER STARTED ON UDP PORT: " + port);


        while (true) {
            // Create a packet
            packet = new DatagramPacket(new byte[PACKETSIZE], PACKETSIZE);

            // Receive a packet (blocking)
            socket.receive(packet);

            // Print the packet sent from the client
            System.out.println(packet.getAddress() + " " + packet.getPort() + ": " + new String(packet.getData()));
            // Create a new packet to send back to the client
            byte[] newData = "Hello Client".getBytes();
            DatagramPacket newPacket = new DatagramPacket(newData, newData.length, packet.getAddress(), packet.getPort());
            // Return the packet to the sender (the client)
            socket.send(newPacket);
        }

Got it working. 得到它的工作。 Was reusing the same packet. 正在重用同一数据包。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM