java - 接收数据报包不显示

标签 java network-programming datagram

我试图制作一个小型java程序,它使用DatagramServerDatagramPacket从服务器向客户端写入一条文本消息。

这是我在服务器和客户端部分编写的代码。

serverm.java

byte b[] = new byte[1200];
    System.out.println("Enter some text");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String inputMessage = br.readLine();
    b = inputMessage.getBytes();

    DatagramSocket d = new DatagramSocket(6125);
    DatagramPacket p = new DatagramPacket(b,i,InetAddress.getLocalHost(),5461);
    d.send(p);

clientm.java

byte b[] = new byte[1024];
    try
    {
        DatagramSocket d = new DatagramSocket(5461);
        DatagramPacket p = new DatagramPacket(b,1024);
        d.receive(p);

        String outputMessage = new String(p.getData(),0,p.getLength());
        System.out.println(outputMessage);
    }

运行java程序时,它在服务器向客户端发送消息时运行——收到的消息只打印空行。我怎样才能显示要显示的字符串?

最佳答案

当我将服务器中的“i”变量设置为 0 时,我能够重现您的问题。

确保该值是您要发送的数据包的长度。

关于java - 接收数据报包不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706654/

相关文章:

java - 为什么 Java DatagramSocket 没有收到客户端发送的所有 udp 数据包?

使用 Cxf Web 服务的 Java 示例 ~ 运行时异常

java - java 中的堆空间要求 - Arrays.sort() 与 Collections.sort()

java - hibernate 分页导致选择和更新调用

linux - EPOLLONESHOT 是否阻止在对 epoll_wait() 的单个调用中返回单个描述符上的多个事件?

ios - 当 iOS 应用程序确实进入后台时,TCP 和 UDP(带多播)连接会发生什么

Java8 lambda 将 List 转换为 Map of Maps

javascript - 如何使用多核 CPU 提高游戏服务器性能

java - 当目的地离线时,数据报包去了哪里?

java - DatagramSocket.send 线程安全吗?