
SO_REUSEADDR 옵션은 소켓을 닫고 다시 열 때, 기존에 소켓을 사용한 포트를 재사용할 수 있도록 합니다. 이 옵션을 사용하면, 소켓이 아직 연결된 상태에 대해서도 재사용이 가능합니다.
소켓이 연결된 상태인 경우에도 SO_REUSEADDR 옵션을 사용하여 재사용할 수 있는 조건은, 연결된 소켓이 10분 이내에 닫혀야 합니다. 만약 연결된 소켓이 10분 이상 지속된 경우, SO_REUSEADDR 옵션을 사용하여 재사용할 수 없습니다.
이러한 조건은 SO_LINGER 옵션에 의해 결정됩니다. SO_LINGER 옵션은 소켓이 닫힐 때, 데이터를 보낼 수 있는 시간을 설정하는 옵션입니다. 만약 SO_LINGER 옵션이 설정되어 있으면, 소켓이 닫힐 때, 데이터를 보낼 수 있는 시간이 설정된 시간보다 더 오래 지속되면, SO_REUSEADDR 옵션을 사용하여 재사용할 수 없습니다.
예를 들어, SO_REUSEADDR 옵션을 사용하여 소켓을 닫고 다시 열 때, 다음 코드를 사용할 수 있습니다.
#hostingforum.kr
c
int optval = 1;
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
이러한 코드를 사용하여 SO_REUSEADDR 옵션을 설정하면, 소켓을 닫고 다시 열 때, 기존에 소켓을 사용한 포트를 재사용할 수 있습니다.
2025-06-10 04:42