2666
2014-12-29 14:03:34
1
저기 지나가다가 궁금해서 글남겨 봅니다.
"안드로이드쪽은 -1, - 106, 62이 찍혀나옵니다." 라고 쓰신부분이 있는데요.
byte 는 unsigned char 로 0~255 까지만 표현되는 변수 인데요. 어떤 변수에 받아서 디버깅을 찍으셧는지 몰라도 마이너스 값이 나온다는건 안드로이드에서 byte 변수에 값을 넣으신게 아니라 그냥 오브젝트에 넣고 쓰신것 같은데요 혹시 그부분도 문제 되지 않을까 하고요.
바람직 하지는 않지만 확실한 방법이 있긴 해요. 다만 이미지를 byte 로 전송할땐 100kb 면 될거 1메가가 넘을수도 있지만 우선 간단하게
mfc 에서 byte 값들을 전부 string 으로 바꿔서 스트링을 전송해보세요 . byte 값 01 0A CC FF F0 이렇게 되어 있는 데이터를 "01 0A CC FF F0" 스트링화 시켜서 안드로이드에 보내고 그 받은 자료를 안드로이드는 스트링 -> 16진수 변환해서 최종적으로 Byte 로 변환하여 자신의 메모리에 담고 이미지 변환을 해보세요.
이게 된다면 통신 하는 부분을 쌈박하게 변경 하시면 됩니다. 한마디로 통신해서 보내주는 자료가 잘못된건지 알수 있다라는 거겟죠?
한마디로 확실하지 않는 부분을 우선 배제 시켜놓고 먼저 확실한 부분 만들고 그리고 나서 통신부분을 건드려 보세요.
그리고 또한가지 방법으로는 데이터 전송으로 json 이용 하는 방법도 잇더군요.
json 에 헤더 넣고 이미지 데이터 부분만 따로 떼서 보내주는 방법이 나름 참신하고 간단해보여서 좋더군요.
그리고 모바일 프로그래밍을 하실땐 소켓 통신 진짜 욕나와요 ㅠㅠ
웹서버 하나 두고 mfc -> 웹서버, 웹서버 -> 모바일 기기
형태로 중계형식으로 하는걸 추천 드려요.
그럼 이만~