[안드로이드] 앱에서 소켓연결이 실패될 때 예외처리 방법

조회수 1049회

안녕하세요. 클라이언트 앱을 개발하고 있습니다.

다름이 아니라 앱에서 특정 서버로 Socket연결을 통한 데이터 전송이 이루어지게끔 개발되어 있습니다.

하지만 간혹 데이터신호세기, 데이터 연결상태 모두 양호하다고 나오는데도 Socket 연결시 자꾸 ConnectException 또는 SocketTimeoutException 에러가 나오면서 Socket 연결이 되지 않습니다..

이럴 때 어떻게 예외처리 해야되는지 잘 모르겠습니다.

예를 들어, Socket 연결할 때 Socket 연결이 실패되면 Socket의 Channel(?)을 변경하여 연결이 가능하도록 해준다던지에 대한 방법 있을까요?

답변 꼭 좀 부탁드립니다.

감사합니다.

1 답변

  • private static void connect(String uri) throws IOException, URISyntaxException {
        try {
            socket = new Socket();
            SocketAddress addr = new InetSocketAddress("192.168.17.1", 8080);
            socket.setSoTimeout(connection_timeout);
            socket.connect(socketAddress, connection_timeout);
        } catch (ConnectException exception) {
            //to do
        } catch (SocketTimeoutException exception) {
            //to do
        } catch (Throwable throwable) {
            //to do
        }
    }
    

    이런식으로 처리하면 돼잖을까요?

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 음 그런식으로 처리되어있습니다... ssangyongttt 2019.12.20 13:28
    • 위 질문 드렸던 클라이언트는 전국에서 운용되고 있어 현장의 상태에 따라 다를 순있으나...꽤나 빈번하게 끊어지는거같아서 혹시 몰라 이렇게 질문남겼습니다.. 참고로 운용되는 클라이언트는 3G 데이터 USIM을 사용하고 있습니다. ssangyongttt 2019.12.20 13:29

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

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

(ಠ_ಠ)
(ಠ‿ಠ)