Есть ли простой в реализации или существующий протокол для передачи объекта с конвейером / сокетом в Windows? - PullRequest
0 голосов
/ 24 августа 2010

Объект по существу BYTE с динамической длины.

Какой самый простой способ реализовать механизм отправки / получения?

Я получил подсказку, но не знаю, как запустить этот протокол сам:

Просто помните, что трубы, как розетки, не гарантируйте, что все, что вы положите в трубу, будет выйти на другой конец в том же количество чтений, как было записей. Когда вы читаете из трубы или сокета вам дают то, что в настоящее время доступно в буфере, который может не пока что все, что было написано так Вы должны продолжать читать, пока не получите ожидаемое количество данных.

Ответы [ 2 ]

3 голосов
/ 24 августа 2010

Насколько это должно быть грязно?

Простейший случай:

  • добавить количество байтов к отправленным данным
  • продолжайте чтение, пока не будет достигнуто число байтов
1 голос
/ 24 августа 2010

Как отличить количество байтов от фактических байтов на принимающей стороне?

Есть два пути.

Первый позиционный: если первый байт имеет длину ' n ', а следующие n байтов являются данными, то байт после него является началом следующего пакет, и, следовательно, является байтом начальной длины следующего пакета.

Второй способ - использовать какой-нибудь escape-символ , чтобы отметить начало или конец каждого сообщения.

...