Чтение ссылки POSIX для сокета send
в http://pubs.opengroup.org/onlinepubs/009695399/functions/send.html Интересно, что именно они подразумевают под «байтом» - его традиционное / историческое значение, его подразумеваемое / популярное значение или что-то еще полностью?Я разрабатываю двоичную программу клиент-сервер с сетевым протоколом, поддерживаемую TCP / IP, и я хочу правильно объявить свой буфер, который я использую для передачи в recv
, и иметь возможность правильно распаковать его данные.
Да, я знаю, что это почти гипотетическая проблема и, вероятно, шанс из миллиона справиться с реальными проблемами, но я уверен, что это лучше, чем сожалеть.
Итак, парни из POSIX действительно означают октетыили они действительно подразумевают, что для платформ, где, скажем, байт 7 бит, send
будет работать с массивами с гранулярностью 7 * N?Или, может быть, он просто будет передавать все данные побитно (размер детализации (7 * n_bytes)
бит)?Я имею в виду, поскольку он ожидает void *
буфер ...
Какое объявление для моего recv
буфера будет наиболее стабильным для архитектур и компиляторов?
Я использую GCC со следующимифлаги (C99, POSIX):
cc -g -Wall -Wextra -std=c99 -pedantic -fexec-charset=ISO-8859-1 -DDEBUG -D_POSIX_C_SOURCE