안드로이드 프로그래밍 하는데요 소켓부분 패킷 보낼려고 하는데요

클라이언트는 자바,  서버는 C로 짜고 있습니다. (자바의 클라이언트당 1쓰레드는 부담스러워서;; C에서 WSAEventSelect 모델 사용하려구요..)




데이터를 바이트 배열에 넣어서 전송하는데요..

int형이나 다른 정수형 변수들은 정상적으로 잘되는데 

float형은 0값이 도착하네요...


/=====================  int형 변환 (잘됨) ========================/
int value = 1234;

byte[] data = new byte[1024];

data[0] = (byte) (value & 0x000000FF);
data[1] = (byte) ((value >> 8) & 0x000000FF);
data[2] = (byte) ((value >> 16) & 0x000000FF);
data[3] = (byte) ((value >> 24) & 0x000000FF);


/===================== float형 변환 (앙됨) ========================/

float value = 103.3f;

byte[] data = new byte[1024];

data[0] = (byte) (value & 0x000000FF);
data[1] = (byte) ((value >> 8) & 0x000000FF);
data[2] = (byte) ((value >> 16) & 0x000000FF);
data[3] = (byte) ((value >> 24) & 0x000000FF);

이렇게 하면 에러 나서...

value 값을 int나 long형으로 캐스트 해서 대입하니 에러는 없는데 엉뚱한 값이 도착하네요 (0값)

어떻게 해결할 방법 없나요? 아니면 좀 다른 방법이라도 되는데...

C언어로 짜면  그냥 memcpy로 복사해리면 한방에 끝나는데.. 자바는 어떻게 할줄 모르겠네요