gpt4 book ai didi

java - 砍掉未使用的字节数据类型

转载 作者:行者123 更新时间:2023-11-29 05:58:15 25 4
gpt4 key购买 nike

我正在使用 DatagramSocket 和 DatagramPacket 在 Java 中开发聊天应用程序。收到的数据包以字节为单位。但我不知道如何删除未使用的字节这是代码:-

String s,pack[];

byte[] data=new byte[100];

data=dp.getData();//dp is instance of DatagramPacket

s=new String(data)

pack=s.split("-");//Username-ConnectionProtocol-IPaddress

在此代码中,最后一个拆分获取 IP 地址以及几乎以字节为单位的未使用数据。所以我需要一个解决方案来以字节为单位切断未使用的数据。像 127.0.0.1[][][][][][][][][].....

我尝试使用 subtstring() 来截断字符串 Pack,但它的长度会有所不同。所以我需要一些帮助来解决这个问题。

最佳答案

  • 您不需要使用 new byte[100] 初始化数据,因为 dp.getData() 会丢弃您分配的 100 个字节。
  • 如果发送方写入的数据比需要的多,就不可能知道应该截断多少字节。发件人应该指出他发送了多少字节,或者您应该想出一个启发式方法,让您从有用的字节中分辨出无用的字节。

例如,如果您知道未使用的字节总是在数据包的末尾,并且它们总是设置为零,您可以使用这段代码来设置您的字符串:

data=dp.getData();
int pos = data.length-1;
while (pos != 0 && data[pos] == 0) {
pos--;
}
s=new String(data, 0, pos);

关于java - 砍掉未使用的字节数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com