gpt4 book ai didi

java - 当发送的数据大于0x80时如何读取正确的十六进制数据

转载 作者:行者123 更新时间:2023-12-02 04:41:50 25 4
gpt4 key购买 nike

现在我是一个套接字服务器,我需要从客户端读取十六进制数据。当客户端发送这样的数据:0x55 0x56 0x57时,我可以读取正确的数据但是当客户端发送这样的数据:0x80 0x81 0x82时,我读取的数据是错误的,像这样63 63 63。我读取数据的代码是

try
{
if((b = (byte) mBufferedReaderClient.read())!= -1)
{
y=0xFF&b;
System.out.println(y);
}
}

最佳答案

您应该读取 int 变量:

try
{
int b;
if((b = mBufferedReaderClient.read())!= -1)
{
y=0xFF&b;
System.out.println(y);
}
}

目前您首先转换为bytebyte 类型只能保存从 -128127 的数字,因此您已经丢失了此处的信息。例如,如果收到255,它将自动转换为-1,并且您将错误地将其解释为流的结尾。

关于java - 当发送的数据大于0x80时如何读取正确的十六进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30094027/

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