VPN上的Multicastsocket没有收到软件包

时间:2019-01-24 13:34:18

标签: java wifi openvpn multicastsocket

我正在尝试使用多播套接字在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时,网络接口都是相同的。谢谢

0 个答案:

没有答案