gpt4 book ai didi

java - 套接字传递值为十六进制

转载 作者:行者123 更新时间:2023-11-29 08:14:46 28 4
gpt4 key购买 nike

我正在尝试将套接字中的字符串值传递给另一台服务器。另一台服务器应接收十六进制格式的值。

即,如果我的字符串在服务器上是 s = "600185838e",它应该接收为 60 01 85 83 8e,但我发送的这些值已转换为 ASCII 并且不是所需的格式。

我正在使用套接字连接

BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream()));

wr.write(messageBody);

wr.flush();

如何发送类似于十六进制值的字符串值?

先谢谢大家

最佳答案

你应该 convert the hex string to byte array然后将其作为字节数组发送:

OutputStream out = this.socket.getOutputStream();
out.write(yourBytearray);

这是将十六进制字符串转换为 byte[] 的方法,这是我提供的链接的副本,但我将其复制到此处以明确我在说什么:

public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}

关于java - 套接字传递值为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546853/

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