Простой UDP-широковещательный клиент и сервер на разных машинах

Следующий клиентский и серверный широковещательный код UDP работает нормально, когда оба находятся на одном ПК. Однако, когда они у меня на разных ПК в той же WIFI LAN, ничего не происходит вообще. Мне удалось получить многоадресную версию, работающую на двух отдельных компьютерах, но не на этом :(. Я отключил брандмауэры на обоих компьютерах и успешно пропинговал каждый из них на обоих компьютерах.

Идея этого теста заключается в том, чтобы я мог использовать этот метод, чтобы клиент мог найти сервер в локальной сети, отправив пакет дейтаграммы (обнаружение равноправного узла). Я думаю, что я делаю что-то не так с именем хоста или что-то в этом роде, но после недели поиска в Google и тестирования новых идей, я официально все из них :(.

public class Client
{
    private String hostname= "localhost";
    private int port=1234;
    private InetAddress host;
    private DatagramSocket socket;
    DatagramPacket packet;

    public void run()
    {
        try
        {
            host = InetAddress.getByName(hostname);
            socket = new DatagramSocket (null);
            packet=new DatagramPacket (new byte[100], 0,host, port);
            socket.send (packet);
            packet.setLength(100);
            socket.receive (packet);
            socket.close ();
            byte[] data = packet.getData ();
            String time=new String(data);  // convert byte array data into string
            System.out.println(time);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}



public class Server
{
    public static final int DEFAULT_PORT = 1234;
    private DatagramSocket socket;
    private DatagramPacket packet;

    public void run()
    {
        try
        {
            socket = new DatagramSocket(DEFAULT_PORT);
        }
        catch( Exception ex )
        {
            System.out.println("Problem creating socket on port: " + DEFAULT_PORT );
        }

        packet = new DatagramPacket (new byte[1], 1);

        while (true)
        {
            try
            {
                socket.receive (packet);
                System.out.println("Received from: " + packet.getAddress () + ":" +
                                   packet.getPort ());
                byte[] outBuffer = new java.util.Date ().toString ().getBytes ();
                packet.setData (outBuffer);
                packet.setLength (outBuffer.length);
                socket.send (packet);
            }
            catch (IOException ie)
            {
                ie.printStackTrace();
            }
        }
    }
}

Просто интересно, может ли кто-нибудь помочь?

Ответы на вопрос(2)

Ваш ответ на вопрос