gpt4 book ai didi

java - 在Java中处理来自套接字的特定字节

转载 作者:行者123 更新时间:2023-12-01 10:06:43 24 4
gpt4 key购买 nike

我使用下面的代码来读取 Unix 套接字:

    Boolean flag = false;
while (!flag) {
try {
File socketFile = new File("./RISP");
AFUNIXSocket sock = AFUNIXSocket.newInstance();
sock.connect(new AFUNIXSocketAddress(socketFile));
System.out.println("!!!!!!!!!!CONNECTED!!!!!!!!!");
flag = true;
BufferedReader input = new BufferedReader(new InputStreamReader(sock.getInputStream()));
String line = null;
while ((line = input.readLine())!=null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("NOT CONNECTED....." + e);
}

try {
Thread.sleep(2000);
} catch (InterruptedException inter) {
System.out.println(inter);
}
}

我需要读取每个包的前 4 个字节并将它们从二进制转换为整数。

我已经阅读了很多帖子,但我仍在寻找解决我的问题的最佳解决方案。

最佳答案

Reader 和 Writer 专为读取文本而设计。

对于二进制文件,您应该尝试InputStream 和OutputStream,在本例中,您需要DataInputStream,可能是缓冲的。

DataInputStream in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));

int len = in.readInt(); // read big-endian.
if (LITTLE_ENDIAN)
len = Integer.reverseBytes(len);
byte[] bytes = new byte[len];
in.readFully(bytes);

关于java - 在Java中处理来自套接字的特定字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36397586/

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