다음을 통해 공유


LINGER 구조체(winsock.h)

느린 구조체는 데이터를 보낼 큐에 대기하고 closesocket 함수가 소켓에서 호출될 때 소켓이 작동하는 방식을 지정하는 특정 소켓에 대한 정보를 유지 관리합니다.

구문

typedef struct linger {
  u_short l_onoff;
  u_short l_linger;
} LINGER, *PLINGER, *LPLINGER;

멤버

l_onoff

형식: u_short

큐에 대기된 데이터를 보낼 수 있도록 closesocket 함수 호출 후 지정된 시간 동안 소켓을 열어 둘지 여부를 지정합니다. 이 멤버는 다음 값 중 하나를 가질 수 있습니다.

의미
0
소켓이 열린 상태로 유지되지 않습니다. setockopt 함수가 optname 매개 변수를 SO_DONTLINGER 로 설정하고 optval 매개 변수가 0인 경우 설정된 값입니다.

이 값은 optname 매개 변수를 SO_LINGER 설정하여 setsockopt 함수를 호출하고 optval 매개 변수에 전달된 느린 구조체에 l_onoff 멤버 가 0으로 설정된 경우에도 설정됩니다.

0이 아닌 값
소켓은 지정된 시간 동안 열린 상태로 유지됩니다. 이 값은 optname 매개 변수를 SO_DONTLINGER 설정하여 setsockopt 함수를 호출하고 optval 매개 변수가 0이 아닌 경우 설정됩니다.

이 값은 optname 매개 변수를 SO_LINGER 설정하여 setsockopt 함수를 호출하고 optval 매개 변수에 전달된 느린 구조체에 l_onoff 멤버가 0이 아닌 값으로 설정된 경우에도 설정됩니다.

l_linger

형식: u_short

느린 시간(초)입니다. 이 멤버는 큐에 대기된 데이터를 보낼 수 있도록 closesocket 함수 호출 후 열린 상태로 유지할 기간을 지정합니다. 이 멤버는 느린 구조체의 l_onoff 멤버가 0이 아닌 값으로 설정된 경우에만 적용됩니다.

setockopt 함수가 optname 매개 변수를 SO_LINGER 설정하여 호출되면 이 값이 설정됩니다. setsockopt 함수에 전달된 optval 매개 변수에는 소켓에 대해 유지 관리되는 내부 느린 구조체에 복사되는 느린 구조체가 포함되어야 합니다.

설명

느린 구조체의 l_onoff 멤버는 큐에 대기된 데이터를 보낼 수 있도록 closesocket 함수 호출 후 지정된 시간 동안 소켓을 열어야 하는지 여부를 결정합니다. 다소 혼란스러운 점은 이 멤버를 다음 두 가지 방법으로 수정할 수 있다는 것입니다.

  • optname 매개 변수를 SO_DONTLINGER 설정하여 setsockopt 함수를 호출합니다. optval 매개 변수는 l_onoff 멤버를 수정하는 방법을 결정합니다.
  • optname 매개 변수를 SO_LINGER 설정하여 setsockopt 함수를 호출합니다. optval 매개 변수는 l_onoff 멤버와 l_linger 멤버를 모두 수정하는 방법을 지정합니다.

느린 구조체의 l_linger 멤버는 소켓이 열린 상태로 유지되어야 하는 시간(초)을 결정합니다. 이 멤버는 느린 구조체의 l_onoff 멤버가 0이 아닌 경우에만 적용할 수 있습니다.

소켓을 열린 상태로 유지하려면 애플리케이션에서 l_onoff 멤버를 0이 아닌 값으로 설정하고 l_linger 멤버를 원하는 시간 제한(초)으로 설정해야 합니다. 소켓을 열린 상태로 유지하지 않도록 설정하려면 애플리케이션에서 느린 구조체의 l_onoff 멤버만 0으로 설정하면 됩니다.

애플리케이션이 optname 매개 변수가 SO_DONTLINGER 설정된 setsockopt 함수를 호출하여 l_onoff 멤버를 0이 아닌 값으로 설정하는 경우 l_linger 멤버의 값이 지정되지 않습니다. 이 경우 사용된 제한 시간은 구현에 따라 달라집니다. SO_LINGER 사용하도록 설정하여 소켓에 대해 이전 제한 시간이 설정된 경우 서비스 공급자가 이 제한 시간 값을 복원해야 합니다.

비블로킹 소켓에서 0이 아닌 시간 제한을 사용하도록 설정하는 것은 권장되지 않습니다.

getsockopt 함수는 optname 매개 변수를 SO_LINGER 설정하여 소켓과 연결된 느린 구조체의 현재 값을 검색하도록 호출할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 winsock.h(Winsock2.h 포함)

추가 정보

정상 종료, 느린 옵션 및 소켓 닫기

closesocket

getsockopt

setsockopt