Показать сообщение отдельно
Старый 08.03.2014, 11:49
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 3  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Какая разница, на чем написан сервер? Полнодуплексный сокет шлет данные в обоих направлениях в виде байтов. Бинарный протокол разрабатывается фронтэндом вместе с бэкэндером, в результате чего пакет данных, которые в сокете склеиваются в один поток, принято делать из двух основных частей:
1. первые 4 байта (увеличить при необходимости) определяют размер пакета
2. остальные байты размерностью int-числа в первых четырех байтах являются уже необходимой передаваемой информацией, которая может быть чем угодно и может делиться еще на более мелкие структуры (например, первый байт может указывать на тип передаваемой команды).

Я писал как-то статьи
http://www.flasher.ru/forum/blog.php?b=579
http://www.flasher.ru/forum/blog.php?b=580
http://www.flasher.ru/forum/blog.php?b=581
Единственное, в комментариях к коду считывания пакета через try-catch есть более лаконичный и быстрый вариант с обычным циклом while (я поясняю, почему я взял именно алгоритм, основанный на try-catch).
__________________
тут я