커널 오브젝트의 두 가지 상
·
전공 공부/네트워크프로그래밍
커널 오브젝트는 2가지의 상태를 가지고 있다.1. non-signaled 상태-> 이벤트가 발생하지 않은 상태, 해당 리소스가 특정 상황에 이르지 않은 상태2. signaled상태-> 이벤트가 발생한 상태, 해당 리소스가 특정상황에 도달한 상태ex) 프로세스나 쓰레드의 커널 오브젝트는 프로세스, 쓰레드 생성시에 non-signaled상태에 있다가, 종료 시에 signaled상태가 된다 커널 오브젝트의 상태 확인함수가 값을 반환하기 위해서는 커널 오브젝트가 signaled상태가 되어야 한다.signaled상태로 반환시에 WAIT_OBJECT_0 을 반환한다. auto-reset 모드 커널 오브젝트 : 특정 커널 오브젝트가 signaled상태에서 non-signaled 상태로 자동으로 변경되는 커널 오브젝트..
윈도우에서의 쓰레드 생성방법
·
전공 공부/네트워크프로그래밍
프로세스와 쓰레드는 어떤 관계에 있는가?쉽게 말해 "프로세스는 쓰레드가 담기는 '상자'라고 이해"하면 된다.프로세스는 하나의 프로그램이 실행되는 과정을 말한다.그 과정은 어떻게 이루어져 있는가? 컴공이라면 알고 있지. 노가다의 코딩으로 이루어진다.코드에서의 각각 실행되는 부분을 스레드라고 한다.더 자세한 내용은 운영체제 카테고리에서 다루도록 하겠다.지금부터 쓰레드 생성방법에 대해 알아보겠다. 첫 번째 파라미터 LPSECURITY_ATRIBUTES는 쓰레드의 보안관련된 정보를 전달한다. NULL값으로 설정을 하는 경우에는 디폴트 값으로 보안 설정한다.두 번째 dwStackSize는 쓰레드에게 할당할 스택의 크기를 전달한다. 0을 전달하면 디폴트 크기의 스택을 생성한다.세 번째는 쓰레드의 메인 함수의 정보를..
Socket(소켓)의 다양한 옵션
·
전공 공부/네트워크프로그래밍
네트워크 통신에서 Server(서버)와 Client(클라이언트)가 정보를 주고 받기 위한 공간을 Socket(소켓)이라 합니다.소켓에는 다양한 옵션들이 있습니다.SOL_SOCKET 레벨 : 소켓에 대한 가장 일반적인 옵션들로 생각하면 됩니다.IPPROTO_IP 레벨 : IP프로토콜에 관련된 사항들입니다.IPPROTO_TCP 레벨 : TCP프로토콜에 관련된 사항들입니다.SOL_SOCKET 레벨SO_SNDBUF : 송신 버퍼의 크기를 설정합니다. 네트워크에 전송되기 위한 데이터가 일시적으로 저장되는 버퍼입니다. 송신버퍼의 크기를 큰 값으로 설정할 경우, 더 많은 데이터를 *버퍼링할 수 있지만 메모리 사용량이 늘어나고 전송지연이 발생할 수 있습니다. *버퍼링이란 데이터가 한 곳에서 다른 곳으로 이동하는 동안 ..