inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

- Live Programming(Stream Socket - Part 2)

bind(): Address already in use

해결된 질문

60

random123

작성한 질문수 5

0

한 번 소켓 예제 테스트하고 난 다음에

또 실행하면

bind(): Address already in use

라고 나옵니다.

close랑 상관없이

항상 소켓파일을 지워줘야 하나요?

linux

답변 2

0

런잇(ProgCoach4U)

안녕하세요 random123님.

아래 인프런 AI 인턴의 답변이 정답에 가깝습니다. 일반적으로 소켓을 닫고 다시 열 때 이전의 상태가 남아 bind()에서 에러가 발생하곤 합니다. 소켓에 SO_REUSERADDR을 사용하거나 소켓 파일을 삭제하는 방법이 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. random123님.

소켓을 다시 실행할 때 “bind(): Address already in use” 에러는 자주 발생하는 문제입니다. 이 문제는 소켓이 TCP state machine에 의해 아직 완벽하게 종료되지 않은 상태에서 다시 사용하려고 할 때 발생할 수 있습니다.

일반적으로 아래와 같은 방법으로 문제를 해결할 수 있습니다:

  1. SO_REUSEADDR 옵션 사용: 소켓 옵션 중 하나인 SO_REUSEADDR을 설정해주세요. 이 옵션을 설정하면, 이전 연결이 완전히 종료되지 않았더라도 동일한 주소와 포트로 소켓을 다시 바인딩할 수 있게 됩니다.

  2. TIME_WAIT 상태 확인: 서버 종료 후 TCP 소켓은 TIME_WAIT 상태에 있습니다. 이 시간이 지나면 포트를 사용할 수 있게 됩니다. 하지만, SO_REUSEADDR 옵션을 사용하여 대기 시간을 줄일 수 있습니다.

  3. 소켓 화일 삭제: 강제로 소켓 파일(such as sock_stream_un)을 삭제하여 다시 접속할 수 있습니다. 그러나 이는 임시적인 해결책이므로 SO_REUSEADDR 옵션을 사용하는 것이 더 권장됩니다.

관련된 답변과 예제는 아래 링크에서 확인하실 수 있습니다:
- 에러 - bind(): Address already in use

질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

fork() 후 address

0

40

2

POSIX named semaphore 자원이 제대로 해지되지 못한 상태로 프로세스가 종료됐을 때 해당 semaphore 재사용 방법

0

217

2

강의 순서

0

262

1

강의자료 질문

0

244

1

수업 관련 질문

0

355

3

안녕하세요! 메세지 큐 방식에 대해 질문있습니다.

0

268

1

리눅스는 디버깅이 없나요?

1

722

1

fcntl 에서 Read/Write 기능

1

354

1

시스템 프로그래밍 향후 공부

1

507

1

Shared Memory와 동기화 관련

1

1183

1

거의 모든 함수를 static 선언하시는 이유는 무엇인가요?

1

2331

1

SHM_REMAP

1

318

2

recvfrom 질문

1

716

6

컴파일 질문입니다

1

675

1

partial send/recv에 관하여

1

670

1

스레드끼리의 통신에도 적용가능한가요?

1

375

1

File Lock API - 정리 table에서 multi-thread 사용가능시....

1

412

1

WSL Ubuntu에서 메시지 큐

1

464

1

shared memory(14강) live programming file mapping 에 관한 질문입니다.

1

206

1

에러 - bind(): Address already in use

1

1139

1

POSIX MQ의 설정 문의

1

607

2

accept 함수에 대한 문의

1

296

1

datagram socket 구현시 recvfrom에서 블록킹됩니다.

1

1509

1

counting semaphore에 대해서 질문이 있습니다

0

310

3