在android中的Socket Communication中写Hex字符串

时间:2012-11-27 06:27:50

标签: java android sockets socket.io

我正在开发Socket连接。我在客户端工作。 我已经完成了这次讨论Socket pass value as Hex。我需要在服务器上发送字符串,例如(0x01是十六进制值和一个字符串“Ravi”),它们期望六进制值如1 72 61 76 69.我尝试将字符串Ravi转换为六进制值作为字符串并附加“1 “并尝试转换为字节数组。我得到一个异常的StringIndexOutOfBound异常。

更新

`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)<< 2)                                  + Character.digit(s.charAt(i + 1),16));         }         返回数据;     }

public String toHex(String arg) {
    return String.format("%x", new BigInteger(arg.getBytes()));
}`

我使用这两种方法将1Ravi字符串转换为字节数组,但我得到异常hexstringtobytearray方法。

1 个答案:

答案 0 :(得分:1)

试试这个

        Socket sock = new Socket("host", port);
    OutputStream out = sock.getOutputStream();
    out.write(0);
String s = "ravi";
    byte[] bytes = s.getBytes("UTF-8");
    out.write(bytes);