【问题标题】:Remote client doesn't receive UDP packets远程客户端不接收 UDP 数据包
【发布时间】:2013-08-29 08:30:13
【问题描述】:

我有简单的 UDP 服务器/客户端程序,我转发了我的端口,服务器通过互联网接收和发送数据包,但远程机器上的客户端无法接收它们,所以我想知道如何在不转发客户端端口的情况下接收数据包(如果可能的话)?如果不可能,我应该怎么做才能让客户端通过互联网接收 UDP 数据包?

客户端接收线程如下所示:

public void run(){
        DatagramSocket serverSocket = null;
        while(true){
            try {
                serverSocket = new DatagramSocket(7000+clientNumber+100);    
            } catch (SocketException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            byte[] receiveData = new byte[1024];
            DatagramPacket receiveX = new DatagramPacket(receiveData,     receiveData.length);
            try {
                serverSocket.receive(receiveX);
            } catch (IOException e) {
                System.out.println("Nepagavau paketo");
            }
            String korX = new String( receiveX.getData());
            Play.priesoX = Float.parseFloat(korX);
            serverSocket.close();

              }

【问题讨论】:

    标签: java sockets networking udp client


    【解决方案1】:

    您不需要为客户端进行端口转发,NAT 会自动处理。 http://en.wikipedia.org/wiki/Network_address_translation 您的客户端可能由于各种原因(防火墙等)而无法访问。

    【讨论】:

    • 客户端防火墙已关闭。
    猜你喜欢
    • 1970-01-01
    • 2021-05-05
    • 2021-07-31
    • 1970-01-01
    • 2013-03-23
    • 2023-03-06
    • 1970-01-01
    • 2013-03-19
    • 2020-12-18
    相关资源
    最近更新 更多