简体   繁体   English

数据报套接字未收到

[英]Datagramsocket is not receiving

Hello everyone I am very new to java, I am trying datagramsocket send and receive packets. 大家好,我对Java非常陌生,我正在尝试datagramsocket发送和接收数据包。 My client is sending packets, but server is not receiving. 我的客户端正在发送数据包,但服务器未接收。 Please help me, Thanks in advance. 请帮助我,在此先谢谢。
My client side code is as follows: 我的客户端代码如下:

outString = "Hello World"  
InetAddress hostAddress = InetAddress.getByName("localhost");
buf = outString.getBytes();
DatagramPacket out = new DatagramPacket(buf, buf.length, hostAddress, 4002);
s.send(out);

My server side code is : 我的服务器端代码是:

DatagramSocket sk = new DatagramSocket(PORT);
DatagramPacket dgp = new DatagramPacket(buf, buf.length);
sk = new DatagramSocket(PORT); //PORT is 4002
 while (true) {
    sk.receive(dgp);
    String rcvd = new String(dgp.getData(), 0, dgp.getLength()) + ", from address: "
      + dgp.getAddress() + ", port: " + dgp.getPort();
  System.out.println(rcvd);
}

This example works for me 这个例子对我有用

public static void main(String[] args) throws IOException {
    if (args.length == 0) {
        byte[] buf = new byte[128];
        DatagramPacket dgp = new DatagramPacket(buf, buf.length);
        DatagramSocket sk = new DatagramSocket(PORT); //PORT is 4002
        while (true) {
            sk.receive(dgp);
            String rcvd = new String(dgp.getData(), 0, dgp.getLength()) + ", from address: "
                    + dgp.getAddress() + ", port: " + dgp.getPort();
            System.out.println(rcvd);
        }
    } else {
        String outString = "Hello World";
        InetAddress hostAddress = InetAddress.getByName("localhost");
        byte[] buf = outString.getBytes();
        DatagramPacket out = new DatagramPacket(buf, buf.length, hostAddress, 4002);
        DatagramSocket s = new DatagramSocket();
        s.send(out);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM