Ограничение размера записи выходного потока для облегчения

#ios #ios-bluetooth #eaaccessory

Вопрос:

Я пытаюсь записать в аксессуар MFi по протоколу (bluetooth), поддерживаемому аксессуаром, из моего приложения iOS, используя поток вывода EASession. Проблема в том, что когда объем записанных данных превышает приблизительно 3,8 Кбайт, пакет разделяется. Например. если размер пакета для записи составляет 5 Кб, то аксессуар получает пакет в двух, т. е. первый пакет размером 3,8 Кбайт и второй размером 1,2 Кбайт. Итак, существует ли ограничение по размеру для записи данных поверх EASession? Если да, то настраивается ли он так, чтобы я мог отправлять большие куски данных? Спасибо, ТС Джей

Комментарии:

1. Это ручей . Ваш протокол должен включать соответствующее обрамление, чтобы вы могли понимать данные независимо от каких-либо ограничений размера пакета.

2. Существует отправленный кадр (IP-пакет последовательной линии), который программное обеспечение на аксессуаре декодирует его. Но сами кадры разделяются до того, как программное обеспечение на аксессуаре получит их.

3. При работе с потоками ваш протокол должен быть способен обрабатывать фрагментацию. Например, у вас может быть заголовок с надписью «в этом кадре будет 4096 байт», за которым следует 4096 байт. Тогда вы знаете, как собрать раму заново. Это то же самое, что вам нужно было бы сделать при работе с TCP-соединением.