지금 블루트스 멀티플레이 게임을 제작중입니다.

SDK 사이트의 블루투스 채팅 샘플을 참조하고 있는데요


기본적인 기능은 됩니다면 소켓을 종료할 때가 문제가 되네요

샘플에서는 데이터 수신시 쓰레드+블록킹 방식을 사용합니다.

이게 while(true){} 안에서 블록킹되어 있습니다


그런데 이게 socket.close 를 실행시키면 항상 ioexception 을 만들어 내네요

로직을 봐서는 당연히 ioexception 이 생기는 구조 같습니다.


try catch 로 되어 있어 앱이 죽는다거나 하진 않지만


어느 책에서 봤듯이 예외처리를 이용하여 특정 기능을 수행하는 것은 잘못된 것 같습니다.

그런데 왜 공식 사이트 샘플에서는 그런 코드가 있는 건지...


실제로 하다보면 예외를 뿜어내도 제대로 되는 경우도 많지만 이후에 블루투스가 먹통이 되기도 하고...


각설하고..


예외처리를 이용하지 않고 블루투스 소켓을 정상 종료시키는 방법이 있을까요?