• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

에러 - bind(): Address already in use

20.01.07 23:33 작성 조회수 687

1

안녕하세요. 서버를 1번실행하고 다시 실행하면 아래와 같은 에러가 발생합니다. 어떻게 처리해야 하나요?

bind(): Address already in use

오류가 발생할때 마다 sock_stream_un 파일을 삭제하면 서버를 다시 실행가능합니다만, 다른 방법은 없는지 답변 부탁드립니다.

답변 1

답변을 작성해보세요.

0

이 에러는 소켓이 TCP state machine에 의해 아직 완벽하게 종료되지 않은 상태에서 해당 소켓을 다시 사용하려 할 때 발생하는 에러입니다. 말씀하신 것처럼 소켓파일을 삭제하는 방법이 있고, setsockopt()를 사용하는 방법이 있습니다. socket option 중 SO_REUSEADDR을 사용하시면 완벽하게 종료되지 않은 상태의 소켓을 다시 바인드할 수 있게 됩니다.

답변이 너무 늦어져 너무 죄송합니다..ㅠㅠ