SO_LINGER는 소켓 설정에 대한 옵션이다. 소켓이 colse 하게 될 때, 이 옵션의 영향을 받는다. 이것은 TCP소켓에 대해서만 적용 된다 소켓은 close 한다고 해서 바로 소켓이 닫히지 않는다. 일정 시간 동안 대기 상태가 되는데 그 대기시간이 소켓의 TIME_OUT 상태이다. 이 TIME_OUT 상태의 시간을 SO_LINGER 옵션을 통해서 바로 소켓을 닫게 할 수가 있다. 그렇다면 왜 TIME_OUT 이라는 상태를 두엇는가? TCP는 신뢰성을 보장하는 프로토콜이다. A 와 B가 TCP 로 연결 되어 잇을때 A가 B에거 접속을 끝자 라고 신호를 보내고 나서, 서로 3번에 걸쳐 이 신호가 오고 가서 접속을 끊는다. 자세한 이야기는 인용을 한다. http://kldp.org/node/165 내용..
분류 전체보기 검색 결과
종료를 말하기 전에 우선 시작된 상태를 말해야 할 것같다. 글보단 그림이 더 좋기 때문에, 그림을 바로 띄우면 아래 그림과 같다. 1. 소켓의 우아한 종료가 왜 필요 할까? 이 모습은 소켓의 정상적인 연결 상태를 보여준다. 각각의 소켓은 입·출력 스트림을 가지고(가진다는 표현이 좋겠다) 있어, 입력을 받거나, 출력을 하게 된다. 그리고 접속을 종료하게 될때 우리는 closesoket 함수를 이용하여, 소켓을 닫는다. 그럼 아래와 같은 그림이 보이게 된다. 이렇게 HOSTA는 소켓을 닫음과 동시에 입·출력 스트림도 닫아 버리고, 자신에게 가지고 있던, 버퍼부터 시작한 모든 리소르를 운영체제에게 반환해준다. 물론 일반적인 경우에 문제가 되지는 않지만, "어떤 중요한 정보"를 HostB가 전송도중이였다면, 그..
.. boost::Tokenizer 를 써보는게 좋겠다.
출처 : http://developerscode.blogspot.com/2007/12/d3drscullmode.html D3DRS_CULLMODE IDirect3DDevice9::SetRenderState() 안에는 무수히 많은 설정값들이 존재하는데 폴리곤의 뒷면을 제거하는 D3DRS_CULLMODE 옵션에 대해서 설명하려 한다. 사용 형태는 대강 이런 모양이다. pd3dDevice ->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); DirectX SDK에 D3DRS_CULLMODE 옵션에 대한 설명이 굉장히 모호하게 되어있다. typedef enum D3DCULL { D3DCULL_NONE = 1, D3DCULL_CW = 2, D3DCULL_CCW = 3, D3DCULL..
출처 : http://navylela.tistory.com/210 컴파일 시 발생하는 C4996 경고는 아래 프리프로세서로 없앨 수 있다. #define _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_WARNINGS 하지만 이건 경고문만 없애주는 것이지 근본적인 해결책은 아니다. 근본적으로 문제를 해결하려면 경고문에서 나타나듯이 사용한 함수명_s 와 같은 형식으로 바꾸어서 필요한 파라미터를 더 추가해주고 사용하면 된다. MS에서 기존 함수의 보안문제(?)로 인해 함수를 새로 정의해버렸다고 하며 사용을 권하고 있다. 만일 unix 에서도 돌아가야 할 프로그램이라면 ifdef - endif 문을 사용하여 각각 플랫폼에서 작동할 함수에 대해 모두 구현해주어야 한다. #i..
최근댓글