Java及其签名字节:是否可能通过UDP发送十六进制信息?

Java及其签名字节:是否可能通过UDP发送十六进制信息?,udp,hex,rtp,unsigned,Udp,Hex,Rtp,Unsigned,我目前正在开发一个应用程序,通过Java应用程序更改我的RGBWW灯条 信息必须通过UDP包发送,以便控制器理解 不幸的是,必须发送十六进制数0x80,这导致了一些问题 每当我发送一个只包含0x00到0x79之间的数字的字节数组时(使用数据包和数据存储),我的网络监视器上就会弹出一个UDP包。 一旦我将数字0x80或任何其他更高的数字包括在内,我就会看到两件事发生: 1:我不再只获取UDP协议,但大多数情况下消息都显示为RTP/RTCP 2:方法Integer.hexToString()不显示“

我目前正在开发一个应用程序,通过Java应用程序更改我的RGBWW灯条

信息必须通过UDP包发送,以便控制器理解

不幸的是,必须发送十六进制数0x80,这导致了一些问题

每当我发送一个只包含0x00到0x79之间的数字的字节数组时(使用数据包和数据存储),我的网络监视器上就会弹出一个UDP包。 一旦我将数字0x80或任何其他更高的数字包括在内,我就会看到两件事发生:

1:我不再只获取UDP协议,但大多数情况下消息都显示为RTP/RTCP

2:方法Integer.hexToString()不显示“80”,但给我一个“ffffff80”

我的问题是:在通过UDP发送十六进制信息时,我是否遗漏了什么?或者是否有另一种发送方式,可能是避免令人烦恼的签名字节

不幸的是,我没有找到任何对我有重大帮助的信息,但我希望你能帮助我


提前谢谢

十六进制是一种表示。没有十六进制数据这样的东西。有二进制数据。Java的字节是有符号的,这一事实不会改变字节中的内容。
Integer.toHexstring()
的参数是一个
int
,因此0x80得到提升,而sign-extended.Hex是一个表示形式。没有十六进制数据这样的东西。有二进制数据。Java的字节是有符号的,这一事实不会改变字节中的内容。
Integer.toHexstring()
的参数是一个
int
,因此0x80得到提升并进行了符号扩展。