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

소켓통신 궁금한 내용입니다.

+1 추천
Socket soc = new Socket("host",1111);

BufferedOutputStream bos = new BufferedOutputStream(soc.getOutputStream);

DataOutputStream dos = new DataOutputStream(bos);

 

상황은 특정 서버와 소켓통신을 하는 상태이고..

soc는 소켓입니다.

궁금한건 두가지입니다.

 

1.

위와 같은 상황일때

dos.close(); 를 하면 저기 소켓도 close가 되는건가요?

아니면 스트림만 close가 되는건가요?

긴가민가 하네요..

 

2.

dos.close();를 하면 bos는 close를 하지 않아도 자동으로 close가 되는건가요?

 

조언부탁드립니다.^^
갸아악 (21,260 포인트) 님이 2014년 7월 29일 질문
이건 그냥 한번 해보면 답 나오지 않을까요..? 질문 하신 내용이 대신 해봐달라는걸로 보이네요..
ㅎㅎㅎ 죄송해여
책에는 dos만 클로즈하면 다 닫힌다고 되어 잇는데
테스트해보면 안닫히는거 같고..
좀더 정확한 조언을 얻고자 적었습니다.
소켓같은 경우에 개념을 좀만 찾아보시면 좋을것 같아요, (소켓 옵션 - 재사용 등) 그리고 래퍼 클래스가 아닌 이상 대부분 위에 말씀하신것처럼 부모 자식이 아니면 자동으로 처리해주는 별도 메서드가 있는 경우가 많더라구요~

2개의 답변

0 추천
1. dos만 close됩니다.

2. 왠만하면 모두 해주는게 좋지요..
nicehee (73,100 포인트) 님이 2014년 7월 29일 답변
0 추천
뭔가 의문상황이 있을 때는 항상 API문서부터 정독하세요.

API 문서에 명확하게 어떻게 동작한다고 정의되어 있지 않은 경우 정답은 "알 수 없다"입니다.
익명사용자 님이 2014년 7월 29일 답변
...