소켓 모드란? 소켓은 함수(accept(), send(), recv(), sendto(), recvfrom()) 호출 시 동작 방식에 따라 블로킹(Blocking)과 넌블로킹(Nonblocking) 소켓으로 구분한다. 블로킹 소켓 소켓 함수 호출 시 조건이 만족되지 않으면 함수는 리턴하지 않고 해당 스레드는 대기 상태가 된다. 넌블로킹 소켓 소켓 함수 호출 시 조건이 만족되지 않더라도 함수가 리턴하므로 해당 스레드는 계속 진행 할 수 있다. // 블로킹 소켓 생성 SOCKET listenSocket = socket(AF_INET, SOCK_STREAM, 0); if(listenSocket == INVALID_SOCKET) err_quit("socket()"); // 넌블로킹 소켓으로 전환 unsigned..
소켓 옵션이란? 소켓 함수의 기본 동작을 변경할 수 있으며, 이를 이용하여 소켓과 프로토콜 구현 코드에 대한 좀 더 세부적인 제어를 할 수 있게 된다. 소켓 옵션을 설정하는 함수 int setsockopt( SOCK s, // 옵션을 적용할 소켓 int level, // 옵션을 해석하고 처리하는 코드를 나타내며, 옵션 레벨이라 부른다. 소켓코드(SOL_SOKET), IP 프로토콜 코드(IPPROTO_IP), TCP 프로토콜 코드(IPPROTO_TCP) int optname, // 옵션 이름 const char* optval, // 설정할 옵션 값을 담고 있는 버퍼의 주소 int optlen // optval이 가리키는 버퍼의 크기 ); 소켓 옵션을 얻어오는 함수 int getsockopt( SOCK s,..
스레드 하나의 프로세스에서 다중 작업이 동시에 하는 것 스레드 관련 함수 -------------------------------------------------------- HANDLE WINAPI CreateThread( __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes, __in SIZE_T dwStackSize, __in LPTHREAD_START_ROUTINE lpStartAddress, __in_opt LPVOID lpParameter, __in DWORD dwCreationFlags, __out_opt LPDWORD lpThreadId ); lpThreadAttributes - 스레드에 대한 보안 속성 구조체 포인터 dwStackSize - 스레드에서 ..
소켓(Socket) 버클리 유닉스 에서 사용한 네트워크 프로그래밍 인터페이스, 이것을 윈도우에서 사용할 수 있도록 한 것을 윈도우 소켓(줄여서 윈속)이라 부름. 윈도우 95버전부터 API에 정식으로 포함하여 제공되었고, 현재는 WinSock2 버전까지 나옴. 윈속(Windows Socket, Winsock) DLL를 통해 기능이 제공됨(WS2_32.DLL) 윈도우의 메세지 구동방식으로 동작하므로, 이를 위한 확장 함수 존재 유닉스 소켓과 소스 코드 수준에서 호환성이 높으므로 기존 프로그램을 포팅하기 쉽다. OS별 윈속 버전은 다음과 같다. 윈도우 95 - 1.1 윈도우 98/Me, 윈도우 NT/2000/XP/2003 - 2.2 윈도우 CE - 1.1 #include "stdafx.h" #include /..
Network 란? 1:1, 1:n, n:1, n:n의 다자간 통신을 의미한다.(방송, 인터넷 등) 인터넷 이란? 미국에서 군사용 목적으로 컴퓨터와 컴퓨터간의 통신망을 생활에 도입한 네트워크 시스템이다. 통신을 하는 방식은 종단 시스템(end-system)과 라우터(router) 개체를 이용한 통신을 한다. * 종단 시스템 - PC, PDA, 휴대폰 등 * 라우터 - 종단 시스템이 속한 네트워크와 서로 다른 네트워크에 속한 종단 시스템끼리 통신할 수 있도록 해 주는 개체 프로토콜 각 네트워크 개체간 통신을 위한 규약(TCP/IP, UDP, 각 종 서비스를 위한 프로토콜 - HTTP, FTP, Gopher, IPX 등) 네트워크의 계층 구조 어플리케이션 계층(Telnet, Ftp, Http, Smtp 등)..