Java DatagramPack和DatagramSocket未接收数据

Java DatagramPack和DatagramSocket未接收数据,java,Java,我试图使用Java中的DatagramPacket和DatagramSocket类来接收一个简单字符串 这是我的密码: public static void main(String [] args){ DatagramSocket aSocket = null; try{ aSocket= new DatagramSocket(); String aMessage = "my message"; System.out.print

我试图使用Java中的
DatagramPacket
DatagramSocket
类来接收一个简单字符串

这是我的密码:

public static void main(String [] args){

    DatagramSocket aSocket = null;

    try{
        aSocket= new DatagramSocket();
        String aMessage = "my message";
        System.out.println("1");
        byte [] m = aMessage.getBytes();
        InetAddress aHost = InetAddress.getByName("localhost");
        int serverPort = 6789;
        DatagramPacket request = new DatagramPacket(m,aMessage.length(),aHost,serverPort);
        System.out.println("2");
        aSocket.send(request);
        System.out.println("3");
        byte [] buffer = new byte[1000];
        System.out.println("4");
        DatagramPacket reply = new DatagramPacket(buffer,buffer.length);
        aSocket.receive(reply);
        System.out.println("5");
        System.out.println("DATA RECEIVED" + reply.getData());
        aSocket.close();

    }
    catch(SocketException ex){
       ex.printStackTrace();
    }

    catch(IOException ioe){
       ioe.printStackTrace();
    }
}

它没有打印接收到的数据。我放置了
System.out.println
只是为了查看代码的执行位置,它在4处停止,而不打印5,这意味着问题刚好在4以下。为什么我没有收到数据,有人能帮我吗?

@avi不要使用相同的数据报套接字获取数据。要获得回复,您必须提到服务器数据报套接字的端口号。使用

DatagramSocket datagramSocket = new DatagramSocket(6789);// Which is given by you only
然后使用
datagramSocket.receive(reply)

而且为了获得地址,也可以使用此方法

InetAddress aHost = InetAddress.getLocalHost();
而不是

InetAddress aHost = InetAddress.getByName("localhost");
请参考此链接


是否正在发送回复?用什么密码?Show us.public static void main(String[]args){DatagramSocket aSocket=null;try{aSocket=new DatagramSocket(6789);byte[]buffer=new byte[1000];while(true){datagrampack request=new datagrampackt(buffer,buffer.length);aSocket.receive(request);datagrampack reply=new DatagramPacket(request.getData(),request.getLength()),request.getAddress(),request.getPort();aSocket.send(reply);}}catch(SocketException e){System.out.println(“Socket:+e.getMessage());}catch(IOException e){System.out.println(“IO:+e.getMessage());}}}@arun抱歉,我是这个网站的新手,我找不到如何添加上面的代码,它现在正在工作,错误发生在我的网络本身,我还对datagramsocket进行了更改,如下面的回答所述。无论如何,谢谢你,我们很幸运有像你这样愿意帮助别人的人:)@avi欢迎你,伙计..快乐编码:)谢谢你,现在工作很好。很高兴有你们这样的人在这里,随时准备帮助:)@avi谢谢。很乐意帮忙。