m_in_stream = m_client_soket.getInputStream();
//1byte씩 read
r_size =(byte) m_in_stream.read();
r_message_id = (byte)m_in_stream.read();
String readdata = String.format("size : %d, id : %d", (int)r_size,(int)r_message_id);
// 위 두 값은 숫자 정보(message size, message id)이고,
// 정확하게 출력됩니다.//...
data = new byte[(int)r_size+1];
for(int i=0;i<(int)r_size;i++){
data[i/*(int)r_size-i-1*/] = (byte) m_in_stream.read();
Log.d("<Comm-read>","reading.....");
}
data[(int)r_size] = '\0';
r_data = data;
Log.d("<SUBJECT>",r_data.toString());
위 코드는 클라이언트(안드로이드) 중에서도 메시지 수신부분만 자른부분입니다
제일 마지막 라인에서... 로그켓에 로그를 찍어보면. 스크린샷에 보이듯 전혀 상관없는 문자열이 나오네요.
실험적으로 전송한 문자열은 fortune이라는 문자열입니다.
msg size / msg id / msg body 의 형태로 하나의 패킷을 구성하여 전송해봤는데.
메시지아이디 / 메시지 크기 같은 integer 벨류는 문제없이 받아서 출력까지 성공했습니다.
그런데 msgbody에 실리게되는 fortune 문자열은 엉뚱한 문자조합으로 출력되네요.
(참고로 반대로 클라이언트에서 서버쪽으로 보내는 문자열은 정상적으로 잘 출력되고있습니다)