AndroidФорумПрограммирование

падение в Native при приведении типов. (3 стр)

Страницы: 1 2 3
#30
13:27, 24 апр 2013

Получается хороший такой нюанс при пересылке данных. Записываем какие-то POD структуры в некий буффер, отсылаем в сеть, принимаем его с другой стороны в какой-нибудь буффер. Значит мы не имеем права напрямую получать указатель на эту структуру в буффере для работы с ней, и обязаны предварительно положить её через memcpy в более ровное место?

#31
13:49, 24 апр 2013

frost
> и обязаны предварительно положить её через memcpy в более ровное место?
Не обязательно, если место в буфере изначально было выбрано аккуратно.

#32
14:21, 24 апр 2013

Увы не получается, в данном случае место выбирает не аллокатор а сетевой протокол, которого абсолютно не должно волновать выравнивание на каждой из машин в сети. Допустим идут данные потоком (TCP) |header|data1|header|data2|, заголовки одинаковые, а вот в данных что угодно, может быть один байт, а может быть и структура, это уже после чтения заголовка ясно будет. Похоже придётся отказаться от идеи с минимумом копирований и аллокаций, и всё-таки добавить честную сериализацию. Хаодно избавлюсь от любых проблем с endianess.

#33
14:34, 24 апр 2013

> Допустим идут данные потоком (TCP) |header|data1|header|data2|, заголовки одинаковые, а вот в данных что угодно, может быть один байт, а может быть и структура,
Данные от tcp в любом случае идут кусками, и требуют манипуляций с реконструкцией полного пакета из доставленных кусков.
Опять же, структурки по сети могут лететь зипованными, что уже не позволяет тыкать указателем на структуру во временный буфер.

Страницы: 1 2 3
AndroidФорумПрограммирование

Тема в архиве.