塌鼻子巴巴鲁 2018-06-16 06:00 采纳率: 45.5%
浏览 1198
已结题

Java网络编程,代码正确,控制台不显示接收的结果,但调试模式下又显示,请热心人帮忙解答,谢谢。

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
//发送程序
public class UDPSend {

    public static void main(String[] args) throws IOException {
        //给本机发送消息
        InetAddress inet = InetAddress.getByName("127.0.0.1");
        byte[] data = "你好UDP".getBytes();
        DatagramPacket packet = new DatagramPacket(data, data.length, inet, 10000);
        DatagramSocket socket = new DatagramSocket();
        socket.send(packet);
        socket.close();
    }
} 

//接收程序

 import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPReceive {

    public static void main(String[] args) throws IOException {
        byte[] data = new byte[1024];
        //通过10000端口号接收数据
        DatagramSocket socket = new DatagramSocket(10000);
        DatagramPacket packet = new DatagramPacket(data, data.length);
        socket.receive(packet);
        int length = packet.getLength();
        //打印从UDPSend接收的数据
        System.out.println(new String(data,0,length));
        socket.close();
    }
}

问题是控制台不显示任何东西,但调试模式会显示"你好UDP。为什么?

  • 写回答

8条回答 默认 最新

  • QuXia0 2018-06-16 06:51
    关注

    复制你代码在我ide里运行可以显示收到的文字,你在什么ide里运行的?注意要先启动UDPReceive再启动UDPSend

    评论

报告相同问题?