XDCS94 - в формате String? или int?

iceman

говнокодер
Заголовок включает в себя:
- сигнатуру системы мониторинга. Занимает 4 байта со значением ‘XDCS’;
- размер тела сообщения. Занимает 2 байта.

у меня сообщение 94 байта

что я должен отослать? XDCS94 - в формате String? или int?
 

iceman

говнокодер
эм, а на Яве как сделать этот пак?

либо объяснить во что должен быть перекодировано 94? туплю чото не могу понять...
 

iceman

говнокодер
хм, Short занимает как раз 2 байта

пишу
PHP:
ClientOut.writeShort(CMD.length());
не канает...

PHP:
ClientOut.writeByte(CMD.length());
ClientOut.writeByte(0);
канает, но боюсь будут проблемы с длинными сообщениями?
 

BRat

o_0
Не канает это какой-то не программистский сленг. Что у тебя не работает?
PHP:
    String test = "test";
    try {
      DataOutputStream os = new DataOutputStream(new FileOutputStream(new File("C:/Work/file.txt")));
      os.writeShort(test.length());
      os.writeBytes("Privet");
      os.close();

      DataInputStream is = new DataInputStream(new FileInputStream(new File("C:/Work/file.txt")));
      int len = is.readShort();
      is.close();
      System.out.print(len);
    } catch (IOException e) {
      e.printStackTrace(System.out); 
    }
 

Вурдалак

Продвинутый новичок
По-моему, ему требуется little-endian порядок байтов, writeShort() записывает в big-endian.
 

iceman

говнокодер
Вурдалак
whirlwind

во мужики!! спасибо!

PHP:
Short.reverseBytes((short) CMD.length())
и теперь сервак не ругается... теперь понятно все!

BRat
длина сообщения у меня 94 байта, int 94 в short = 00 5E
в ответ сервер ругался, так как я ему не точную длину передавал (т.к. он по другому трактовал эти 2 байта), поменял порядок байт (5E 00), перестал ругаться!
 
Сверху