Я использую стороннюю библиотеку ssh, и мне нужно указать некоторые параметры в виде байтового массива. А именно, терминальные режимы (http://www.ietf.org/rfc/rfc4254.txt).
Моя проблема в том, что мне нужно создать массив byte
который является "эквивалентом" массива uint
{128, 36000, 129, 36000}
и я не совсем уверен, как этого добиться. Под эквивалентом я имею в виду - мне все равно, какое число он представляет в java, мне все равно, что правильные байты отправляются по сокету.
Любые намеки? Заранее спасибо.
Если я понимаю ваш вопрос, то я считаю, что вы можете сделать это с помощью ByteArrayOutputStream
обернутого DataOutputStream
и что-то вроде этого,
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
int[] ints = new int[] { 128, 36000, 129, 36000 };
try {
for (int i = 0; i < ints.length; i += 2) {
dos.writeByte(ints[i]);
dos.writeInt(ints[1 + i]);
}
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
byte[] bytes = baos.toByteArray();
Или используйте клиент OutputStream
напрямую.