Java UDP客户端未接收数据包

时间:2015-10-13 05:32:49

标签: java udp datagram packets

我创建了一个使用UDP的java应用程序,在我的计算机上托管时,我似乎无法接收局域网外的数据包。我尝试将我的应用程序放在托管服务器上,它似乎工作(接收数据包)。

是什么导致这种情况发生?我希望它也能在我的电脑上运行。

客户:

try {
    this.socket = new DatagramSocket(2500);
} catch (SocketException e1) {
    System.out.println("Could not establish connection");
    return;
}
while(true){
    byte[] data = new byte[1024];
    DatagramPacket packet = new DatagramPacket(data, data.length);

    try{
        socket.receive(packet);
    }catch(IOException e){
        System.out.println("Connection close");
        break;
    }
    System.out.println("RECEIVED " + new String(packet.getData()));
}

SERVER:

try {
    this.socket = new DatagramSocket(25860);
} catch (SocketException e) {
    e.printStackTrace();
}

try {
    byte[] data = datas.getBytes();
    DatagramPacket packet = new DatagramPacket(data, data.length, ipAddress, 2500);

    socket.send(packet);
}catch(IOException e) {

}

System.out.println("Sent " + ipAddress.getHostAddress() + ":" + port + " " + new String(datas));

IP地址正确,它与我的客户端打印出的IP完全相同。但是我还没有收到。

1 个答案:

答案 0 :(得分:0)

如果它在一台计算机(单个)中工作而在另一台计算机上没有尝试检查防火墙,则应允许在您的计算机中建立UDP连接。