마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

소켓통신으로 가변하는 문자열 길이

0 추천
소켓통신으로 문자열을 받아야 합니다.

A데이터, B데이터, C데이터, D데이터 등등.

NEW BufferedReader(new InputStreamReader(Socket.getInputStream()));

String data = socket.readLine();

A = data.substring(0,4);

B = data.substring(4,8);

C D.. ~

 

전송받는 데이터의 문자열 길이가

0 일수도 있고, (1자리)

10000 일수도 있습니다. (5자리)

소켓통신으로 들어오는 데이터(수신)를 subString으로 잘라서 쓰고 있는 중인데,

가변하는 문자열 길이를 어떻게 구분해서 잘라 써야 하는지

조언을 해주셨으면 합니다.

감사합니다.
익명사용자 님이 2016년 5월 11일 질문

1개의 답변

0 추천
 
채택된 답변
스트림을 사용하시는 경우에는 delimiter를 사용(예로 \n 같은 라인피드)하시면 되고요.. 스트림으로 전송하기 전에 한번에 보내는 사이즈를 앞에 보내고, 다음으로 데이터를 전송하고, 읽어들이는 곳에서 처리를 하시면 됩니다.
mcsong (44,040 포인트) 님이 2016년 5월 12일 답변
답변 감사합니다. 좋은하루되세요!
...