소켓 에러 10054 문제해결
글쓴이: jaya072 / 작성시간: 목, 2019/10/31 - 6:23오후
안드로이드와 윈도pc간 tcp/ip 소켓 프로그램입니다. 현재 서버-윈도우 클라이언트-안드로이드 입니다.
처음에는 서버와 클라이언트간 데이타를 잘 주고 받습니다. 그러다 일정시간후에 연결이 끊기는데 서버측 recv함수에서 10054 에러가 발생해서 서버측에서 클라이언트 소켓을 close하고 클라언트의 재접속을 기다립니다.
클라이언트에서 재접속요청이 오면 accept 하고 recv하면 10054 에러가 발생합니다.
그리고 윈도우에서 클라이언트 ip address로 ping 하면 요청 시간이 만료되었습니다. 라는 메시지와 함께 안드로이드 기기 자체가 네트워크가 끊겨지 상태입니다.
네트워크 셋업을 iMode =1; ioctlsocket(server_socket, FIONBIO, &iMode); 등을 사용해서 블로킹모드 또는 넌블로킹 모두 모두 사용해보고 select를 사용해서 신호대기도 해보고
setsockopt(server_socket, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option)); 등을 이용해서 여러 옵션들을 바꿔보고해서 테스트해봐도 결과는 마찬가지입니다.
혹시 이런 경우를 해결해보신 분 계시면 도움 부탁드립니다.
Forums:
댓글 달기