안드로이드 개발 질문/답변
(글 수 45,052)
socket으로 파일 전송중(stream)일때 클라이언트에서 중지를 하고 싶으면
어떻게 처리해줘야 할까요;
클라이언트에서 아래처럼 파일을 받다가 중지를 하거나 클라이언트가 인터넷이 끈겼을 경우
서버쪽에서는 계속 파일을 보내고 있네요;;
//서버에서 파일 보내는 부분
while ((len = bis.read(data)) != -1) {
System.out.println("Host에서 Guest로 파일 전송 중.. (totallen:" + totallen + "/" + f.length() + ")");
dos.write(data, 0, len);
dos.flush();
}
//클라이언트 파일 받는 부분
while ((totallen += len = dis.read(data)) <= fileRealSize) {
bos.write(data, 0, len);
bos.flush();
System.out.println("서버->클라이언트로 파일 받는 중.. (totallen:"+totallen+"/"+fileRealSize+")");
}
서버쪽에서 클라이언트가 끈기거나 stream을 이제 다썼을때 어떻게 서버에 노티를 하는게 좋을까요?;
아니면 어떻게 서버는 자동적으로 알수 있을까요?;
다른 방법이 있을까요?ㅠㅠ




전송을 중단하고 싶다면 while문안에 flag를 하나 둬서 break 시킨 후 stream을 close시키면 될거구요.
stream이 close 되면 서버에서 exception이 발생할겁니다.