서버 통신 관련 질문

조회수 399회
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);

OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);

int count;
int input_size = 1024;
byte[] input_data = new byte[input_size];

while ((count = bis.read(input_data)) != -1) {
    String send_Contents ="METHOD="+method+",SIZE="+size+",DATA=data";
    byte[] contents_byteArr = send_Contents.getBytes("UTF-8");
    dos.write(contents_byteArr,0,count);
    dos.flush();
}

클라이언트에서 이런식으로 input_szie만큼 DataOutputStream 으로 자료를 보낼때 서버에서 input_size만큼만 받아서 String으로 변환해서 사용 하는 방법이 있을까요? 서버에서는 앞에 method 관련 작업을 끝내고 다음 byte[] 를 받고 싶습니다.

예를 들어

  1. 클라이언트에서 1024만큼 string을 byte[]로 변환한 값을 dos에 write해서 flush하는 과정을 다 보낼때까지 반복

  2. 서버에서는 1024만큼만 받아서 해당 값을 string으로 변환 후 method 값만 확인하여 해당하는 작업 실행

  3. 다시 inputstream으로 돌아와서 1024를 받아와서 2번의 과정을 끝날때까지 반복

동기, 비동기 식이라고 해야하나요? 어떻게 처리해야 할까요

  • (•́ ✖ •̀)
    알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)