안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 프로그래밍 하는데요 소켓부분 패킷 보낼려고 하는데요
클라이언트는 자바, 서버는 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로 복사해리면 한방에 끝나는데.. 자바는 어떻게 할줄 모르겠네요




Stream으로 처리하시면 될것 같습니다.