Multicastsocket через VPN не принимает пакеты - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь создать сервер-клиент в java с многоадресной рассылкой.

Сервер отправляет то, что получает, с клавиатуры, в то время как он отличается от «выхода», в локальном режиме работает отлично.Это мой код клиента и сервера:

Клиент:

import java.io.*;
import java.net.*;

public class MCClient {

public static void main(String[] args) throws IOException {

    MulticastSocket s = new MulticastSocket(10000);

    InetAddress addressMultiCast = InetAddress.getLocalHost(); 
    s.setInterface(addressMultiCast);
    s.setBroadcast(true);

    InetAddress group = InetAddress.getByName("231.0.0.1");

    s.joinGroup(group);

    String salida = new String();
    while (!salida.equals("salir")) {

        byte[] buffer = new byte[256];

        DatagramPacket dgp = new DatagramPacket(buffer, buffer.length);

        s.receive(dgp);

        byte[] buffer2 = new byte[dgp.getLength()];

        System.arraycopy(dgp.getData(),
                0,
                buffer2,
                0,
                dgp.getLength());

        salida = new String(buffer2);
        System.out.println(salida);

    }

    s.leaveGroup(group);

    s.close();

  }
}

Сервер:

import java.io.*;
import java.net.*;

public class MCServer {

public static void main(String[] args) throws IOException {

    MulticastSocket s = new MulticastSocket();

    InetAddress addressMultiCast = InetAddress.getLocalHost(); 
    s.setInterface(addressMultiCast);
    s.setBroadcast(true);

    InetAddress group = InetAddress.getByName("231.0.0.1");

    byte[] vacio = new byte[0];
    DatagramPacket dgp = new DatagramPacket(vacio, 0, group,
            10000);

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String linea = br.readLine();

    while (!linea.equals("salir")) {

        byte[] buffer = linea.getBytes();

        dgp.setData(buffer);

        dgp.setLength(buffer.length);

        s.send(dgp);

        linea = br.readLine();

    }

    s.close();
  }
}

У меня есть сервер OpenVPN, чтобы убедиться, что все пользователи находятся на одномсеть, но когда я запускаю многоадресную рассылку клиента и сервера, она не работает, если они находятся в разных сетях, WLAN и WiFi, но все они подключены к VPN;если они все находятся в WLAN, это работает, и если они все находятся в WiFi, это также не работает.Можете ли вы сказать мне, что я делаю не так?Я проверил сетевой интерфейс, и он одинаков для всех, когда они подключены к VPN.Спасибо

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