Если вы хотите быть действительно переносимым, то лучшим вариантом будет отправка поплавков в виде строк.
Тем не менее, если вы согласны с предположением, что все компьютеры будут использовать стандарт IEEE754 с плавающей запятой (что является допустимым допущением для программирования на ПК / Mac / Linux в наши дни), то вы можете просто отправить необработанные данные дословно (т.е. отправлять каждое число с плавающей запятой как 4 байта через memcpy ()).
Единственная складка - это если вы хотите иметь дело с машинами, которые используют другой порядок байтов ... например отправка от Intel на компьютер PowerPC. В этом случае одна из машин должна будет изменить порядок следования 4 байтов до того, как она отправит их (и после того, как она получит их), так что она все равно будет интерпретировать их так же, как и их аналог. (Нет функции ntohf () или htonf (), но вы можете поменять байты поплавком вручную, переместив его в int32_t с помощью memcpy (), затем поменяв местами int32_t и отправив его ... при получении, который вы бы получили ( ) данные в int32_t, поменяйте байтами int32_t, затем memcpy () результат в число с плавающей точкой. Обратите внимание, что приведения-и-присваивания здесь недостаточно, вы должны использовать memcpy (), чтобы скопировать данные из int32_t с плавающей точкой и наоборот - в противном случае отсутствие взаимодействия между регистрами с плавающей запятой и целочисленными в некоторых типах процессоров (например, Intel) укусит вас и даст неверные результаты)