Передавать int, а тем более float, путем записи числа напрямую в сокет - очень и очень плохая идея. Потому, что:
1. Размер типов данных может быть разным на разных машинах, даже при одинаковой ОС и компиляторе, в зависимости от опций.
2. Бинарное представление чисел может различаться на разных машинах (порядок байт, бинарное представление float...).
Поэтому для передачи данных int, float, double и т.д. следует использовать что-нибудь вроде:
1. Google Protocol Buffers
2. Google FlatBuffers
3. MessagePack
4. CBOR.
5. ...