인프런 커뮤니티 질문&답변

MIKE.aeon님의 프로필 이미지

작성한 질문수

리눅스 IPC 프로그래밍 - 이론과 실습

- Live Programming(Stream Socket - Part 1)

에러 - bind(): Address already in use

작성

·

932

1

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

bind(): Address already in use

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

답변 1

0

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

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

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