안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요. 안드로이드 단말과 리눅스 서버를 기반으로 통신 프로그램을 개발하고 있습니다.
소켓 통신과 관련해서 한가지 고견을 고수님들께 듣고 싶습니다.
단말은 서버와 TCP를 통해서 제어 메시지를 받고 벌크 데이터는 UDP를 통해 날리고 있는 상황입니다. 안드로이드 단말이 3G->WiFi / WiFi->3G / WiFi -> WiFi 등으로 이동하게 되면 IP가 바뀌게 될텐데요.
모뎀이 자동으로 바뀌거나 (3G<->WiFi) IP가 자동으로 바뀌게 되면 기존 소켓이 바인딩하고 있던 정보가 리셋이 되어야 하므로 자동으로 socket error를 올려주어야 할 것 같은데요. 실제 돌려보면 socket error 가 발생하는 경우와 하지 않는 경우가 혼재합니다. socket error가 발생하면 예외처리로 socket을 close 해주고 다시 socket 바인딩해서 재접속 시도를 하면 되는데 하지만 socket error가 발생하지 않는 경우는 난감하네요. .