초기화

    윈도우 소켓 애플리케이션 초기화 및 종료

    출처: TCP/IP 윈도우 소켓 프로그래밍(https://product.kyobobook.co.kr/detail/S000001636201) 1. 초기화 모든 윈도우 소켓 애플리케이션은 다음과 같은 구조를 가진다. 소켓 초기화 -> 소켓 생성 -> 네트워크 통신 -> 소켓 닫기 -> 소켓 종료 따라서 모든 윈도우 소켓 함수를 호출하기 전에 반드시 윈속 초기화 함수인 WSAStartup() 함수를 호출해야 한다. 이 함수는 프로그램에서 사용할 윈속 버전을 요청함으로써 윈속 라이브러리(WS2_32.DLL)를 초기화하는 역할을 한다. WSAStartup() 함수가 실패할 경우 WS2_32.DLL이 메모리에 로드되지 않는데, 이 경우에는 WSAGetLastError 함수에서 정확한 오류 코드를 리턴하지 않는다. ..

    이펙티브 C++(71p ~ 79p)

    이펙티브 C++ https://www.yes24.com/Product/Goods/17525589 페이지 71p ~ 79p 요약 항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자 C++에서 초기화되지 않은 값을 읽도록 내버려 두면 정의되지 않은 동작이 발생한다. C++의 객체(변수) 초기화 규칙이 분명히 준비되어 있지만, 규칙 자체가 복잡하다. 일반적인 사항을 정리하면 다음과 같다. C++의 C 부분만을 사용하며 초기화에 런타임 비용이 소모될 수 있는 상황이라면 값이 초기화된다는 보장이 없다. 그러나 C 부분이 아닌 다른 부분을 사용하면 상황이 달라지는 경우가 있다. 배열을 사용하면(C++의 C 부분) 원소가 확실히 초기화된다는 보장이 없지만, vector(C++의 STL 부분)을 사용하면 이를..