어허

[socket] bind : error address already in use 본문

개발/C(C++)

[socket] bind : error address already in use

AKDK 2010. 11. 5. 09:31
728x90
정확한 원인은 모르겟지만
나의 경우
server-client 통신간에 서버가 먼저 미정상 종료가 되었을때 다시 실행하려고 하면
bind 에러가 난다

뭔가 타임아웃이 걸려있는것 같이 잠시후엔 다시 되고 ,,

참고 : http://kldp.org/node/1962

SO_REUSEADDR 옵션을 설정해주면 된다한다
    


if(setsockopt(server_sockfd, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt)) == -1)
print_err(">>>>>>>>>>>>>>>>> setsockopt error");




저 옵션이 뭔지는 차차 소켓통신에 대해 공부를 더 해가면서 알아가야 겠고 ,

도스나 윈도우에선 순서도 상관없지만 리눅스에선 순서도 중요하단다

socket_create --> SO_REUSEADDR --> bind

이런 순서로 해야 잘 동작한다고 한다
뭐 이건 정확!한건 아닌것 같다



느낀점 ,,
kldp에는 정말 코딩 잘하는 사람 참 많다 .. 부럽 ㅋ
그리고 또한가지 !
리눅스는 참 편하고 좋긴한데 ,, 좀 까탈스럽다
그래서 더 편하고 정확한지도 모르겠고 ,,
728x90
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공유하기 링크
Comments