MulticastServer получает дубликаты только на моем компьютере - PullRequest
0 голосов
/ 17 октября 2018

Итак, я делаю распределенную систему для своего класса, и мне нужно реализовать MulticastServer для этого.Дело в том, что я пытаюсь получать сообщения на моем сервере, но я получаю дубликаты пакетов и, следовательно, два идентичных сообщения ... Я в настоящее время на Mac, и я пытался с терминалом и Intel Ij, но когда я пыталсяв компьютере друга не было абсолютно никаких проблем.

import java.net.MulticastSocket;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.io.IOException;
import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;
import java.io.BufferedInputStream;
import java.util.HashMap;

public class MulticastServer extends Thread {
private String MULTICAST_ADDRESS = "224.0.224.0";
private int PORT_ENV = 4321; // Porto para enviar
private int PORT_REC = 4322; // Porto para receber


public static void main(String[] args) {
    MulticastServer server = new MulticastServer();
    server.start();
}

public MulticastServer() {
    super("Server running " + (long) (Math.random() * 1000));
}

public void run() {
    MulticastSocket socket = null;
    System.out.println(this.getName());
    try {
        socket = new MulticastSocket(PORT_ENV);
        InetAddress group = InetAddress.getByName(MULTICAST_ADDRESS);
        socket.joinGroup(group);
        while(true) {
            byte[] buffer = new byte[256];
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
            socket.receive(packet);
            System.out.println("Received packet from " + packet.getAddress().getHostAddress() + ":" + packet.getPort() + " with message:");
            String message = new String(packet.getData(), 0, packet.getLength());
            System.out.println(message);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        socket.close();
    }
}

Пожалуйста, помогите мне:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...