java - DatagramPacket 到字符串

标签 java bytearray datagram

尝试将接收到的 DatagramPacket 转换为字符串,但我遇到了一个小问题。不确定最好的方法是什么。

我将要接收的数据大部分长度未知,因此我在接收端设置了一些缓冲区[1024]。问题是,假设我发送了字符串“abc”并在我的接收端执行了以下操作...

buffer = new byte[1024]; 
packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
buffer = packet.getData();
System.out.println("Received: "+new String(buffer));

我得到以下输出:abc[][][][]][][][].....一直到缓冲区长度。 我猜最后所有的垃圾/空值都应该被忽略,所以我一定做错了什么。”我知道 buffer.length 是问题所在,因为如果我将它更改为 3(对于这个例子),我的出来就好了。

谢谢。

最佳答案

new String(buffer, 0, packet.getLength())

关于java - DatagramPacket 到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8557132/

相关文章:

java - 对于 QuoteServerThread 类型,方法 getNextQuote() 未定义

java - 这个说法在java中正确吗?

java - 根据java中的输入选择一个函数

java - 在 Spring Batch 中使用采用参数的查询

java - 用java制作Jhipster REST客户端

c# - 通过 TCP 发送枚举值

c# - 在 byte[] 中查找 byte[] 并在字符串中查找字符串的速度 - 为什么后者更快?

Java Swing 自定义布局问题

hadoop - 如何从 Hadoop 序列文件中提取数据?

networking - 断开并重新连接已连接的数据报套接字