C언어
bind 에러 해결 방법
뮹실이
2013. 10. 31. 17:20
close 함수로 소켓을 소멸 시켜도 커널은 바로 소멸 시키지 않고 몇초정도 유지시킴
클라이언트와 처리되지 않은 전문을 마저 처리하도록
bind 된 소켓이 아직 소멸되지 않았는데 같은 주소, 같은 포트로 또 다른 소켓이 bind 요청하니
에러 발생
해결 방법 : 소켓에 옵션 설정
option = 1; // SO_REUSEADDR 의 옵션 값을 TRUE 로
setsockopt( server_socket, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option) );
SO_REUSEADDR을 지정해 주면 같은 포트에 대해 다른 소켓이 bind()되는 것을 허락해 주기 때문에 bind() 에러 발생 안함