簡體   English   中英

從 Python 到 Java 我怎樣才能做十六進制轉義序列?

[英]From Python to Java how can I do hex escape sequences?

我正在嘗試通過 Socket 命令控制繼電器板。

我能夠制作一個運行良好的小型 Python 程序:

import socket
HOST = '192.168.1.1'
PORT = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
DATA = '\x58\x01\x12\x00\x00\x00\x05\x70'
s.send(DATA)
data = s.recv(4096)
s.close()
d = data.encode('hex').upper()
print 'Received', repr(d)

現在我想將它切換到 Java,但是我在發送 HEX 字符串時遇到了問題,我知道在 Java 中應該寫為:0x58, 0x01, 0x12........任何人都可以幫我在有效的 Java 例程中轉換這幾行?

在 Java 中,如果你寫String command = ("0x58, 0x01, 0x12, 0x00, 0x00, 0x00, 0x04, 0x6F"); , command將是一個只包含您輸入的字符的字符串。 如果要使用byte數組然后使用該字節數組初始化字符串,您需要做什么。 像這樣的東西:

byte[] buffer = new byte[]{
    (byte)0x58,
    (byte)0x01, 
    (byte)0x12, 
    (byte)0x00, 
    (byte)0x00, 
    (byte)0x00, 
    (byte)0x04, 
    (byte)0x6F
};

BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
String command = new String(buffer);
wr.write(command);
System.out.println(command);

// Flushing the writer
wr.flush();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM