데이빗의 도스 게임 자료실

한국어

Game Dev

SO_LINGER
SO_LINGER은 소켓이 close()되었을 때, 소켓버퍼에 남아있는 데이터를 어떻게 할 것이지를 결정하기 위해서 사용한다. 다음은 SO_LINGER 옵션에 사용되는 데이터구조체이다.
 

struct linger
{
    int l_onoff;
    int l_linger;
}


l_onoff : linger 옵션을 끌것인지 킬 것인지 결정
l_linger : 기다리는 시간의 결정
위의 두개의 멤버변수의 값을 어떻게 하느냐에 따라 3가지 close방식을 결정되어 진다.
l_onoff == 0 : 이 경우 l_linger의 영향을 받지 않는다. 소켓의 기본설정으로 소켓버퍼에 남아 있는 모든 데이터를 보낸다. 이때 close()는 바로 리턴을 하게 되므로 백그라운드에서 이러한 일이 일어나게 된다. 우아한 연결 종료를 보장한다.
l_onoff > 0 이고 l_linger == 0 : close()는 바로 리턴을 하며, 소켓버퍼에 아직 남아있는 데이터는 버려 버린다. TCP 연결상태일 경우에는 상대편 호스트에 리셋을 위한 RST 패킷을 보낸다. hard 혹은 abortive 종료라고 부른다.
l_onoff > 0 이고 l_linger > 0 : 버퍼에 남아있는 데이터를 모두 보내는 우아한 연결 종료를 행한다. 이때 close()에서는 l_linger에 지정된 시간만큼 블럭상태에서 대기한다. 만약 지정된 시간내에 데이터를 모두 보냈다면 리턴이 되고, 시간이 초과되었다면 에러와 함께 리턴이 된다.

 

기본설정은 l_onoff == 0 l_linger==0 이다

조회 수 :
16649
등록일 :
2018.05.26
17:59:40 (*.168.0.1)
엮인글 :
게시글 주소 :
http://dosgame.yyartsworld.pe.kr/developer/44319
사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
옵션 :
:
:
:
:
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 비추천 수 날짜
28 트랜잭션 로그파일 축소 관리자 18141     2016-05-18
 
27 DB ERRORLOG 삭제 관리자 17608     2016-05-18
 
» 소켓옵션 SO_LINGER 에 대해 관리자 16649     2018-05-26
SO_LINGER SO_LINGER은 소켓이 close()되었을 때, 소켓버퍼에 남아있는 데이터를 어떻게 할 것이지를 결정하기 위해서 사용한다. 다음은 SO_LINGER 옵션에 사용되는 데이터구조체이다. struct linger { int l_onoff; int l_linger; } l_onoff : linger 옵션을 ...  
25 MySQL DB 백업및 복원 관리자 16587     2020-12-02
 
24 Eclipse 에서 NDK 디버깅하기 관리자 14281     2014-11-21
 
23 DISTINCT 의 사용 관리자 12882     2016-05-12
 
22 안드로이드 개발환경 관리자 12499     2014-08-27
 
21 Eclipse에서 NDK Build file 관리자 10826     2014-11-21
 
20 이클립스 UTF-8 인코딩 관리자 10446     2013-03-12
 
19 UE4 Compile Thread 늘리기 file 관리자 8493     2017-07-23
 
18 MSSQL 날짜 계산 함수 관리자 8173     2015-03-13
 
17 바이너리를 스트링으로 변환 관리자 7749     2019-06-04
 
16 Visual C++ Release 빌드에서 디버그 하기. 관리자 7425     2020-04-10
 
15 MYSQL ODBC 일정시간 후 커넥션이 lost 된다면 관리자 6997     2021-12-18
 
14 MS-SQL 테이블 컬럼 조작(추가,수정,삭제) 관리자 6914     2016-05-24
 
13 SET NOCOUNT ON 관리자 6193     2016-06-29
 
12 MSSQL INT를 VARCHAR로 변환 관리자 5877     2016-10-25
 
11 MSSQL 테이블 복사하기 관리자 4191     2015-09-11
 
10 데이터베이스의 모든 인덱스 생성 삭제 스크립트 만들기 file 관리자 3949     2017-12-12
 
9 mssql 테이블 복사 및 데이터 복사하기 관리자 3597     2016-05-17