InputStream 데이터에 개행문자가 없는 경우

조회수 1159회

안드로이드에서 소켓 통신으로 25byte 데이터를 hex 값으로 넘겨줍니다.

02 01 14 9f 00 00 00 00........ 03

이런식으로 시작 byte가 0x02 이고 마지막 byte가 0x03 인 데이터가 넘어옵니다.

아래 소스에서 br.readLine()는 개행문자가 없는 데이터인 경우, 데이터 전송을 멈출 때 까지 read를 하다가 한번에 처리하게 되더라구요...

inputStream을 개행문자가 아닌 0x03 단위로 읽어서 처리하는 방법은 없을까요?

inputStream = sock.getInputStream();
br = new BufferedReader(new InputStreamReader(inputStream));

String line = null;
while((line = br.readLine()) != null){    
    Log.d(TAG, line);
}

  • 문자열로 받지 말고 inputStream 을 통해서 byte 를 그대로 받아서 array(buffer) 에 넣으세요. buffer에 쌓인 값으로 작업하면 됩니다. 정영훈 2020.6.26 11:11

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)