我正在使用Socket连接。我正在客户端工作。 我已经通过这个讨论Socket pass value as Hex。我需要发送字符串例如(0x01是一个十六进制值和一个字符串“Ravi”)在服务器,他们期待hexa值像1 72 61 76 69.我尝试将String Ravi转换为六进制值作为字符串,并附加“1 “并尝试转换为字节数组。我得到一个异常,即StringIndexOutOfBound异常。在Socket通信中写入十六进制字符串android
更新:
`公共静态字节[] hexStringToByteArray(一个String){ INT LEN = s.length(); byte [] data = new byte [len/2];数据[i/2] =(字节)((Character.digit(s.charAt(i),16)< < 2) + (int i = 0; i < len; i + = 2) + Character.digit(s.charAt(i + 1),16)); } 返回数据; }
public String toHex(String arg) {
return String.format("%x", new BigInteger(arg.getBytes()));
}`
我用这两种方法的1Ravi字符串转换为字节数组,但我得到异常hexstringtobytearray方法。
请告诉我们你已经尝试的事情,包括样本输入。请注意,你并不是真的想用“十六进制”发送它 - 你只是想发送字节。 –