ACE 라이브러리 설명ACE(The Adaptive Communication Environment)는 네트워크 및 분산 시스템 개발을 지원하기 위한 C++ 기반의 오픈소스 라이브러리입니다. 네트워크 소켓, 멀티스레드, 동기화 제어 등의 기능을 제공합니다.주요 특징이식성: 다양한 플랫폼에서 동작.높은 성능: 멀티스레드 및 이벤트 기반 프로그래밍 지원.모듈화된 디자인: 필요한 기능만 선택적으로 사용 가능.클라이언트-서버 통신 C++ 예제 코드서버 코드// 서버 코드 (server.cpp)#include #include #include #include #include int main() { ACE_INET_Addr port(8080); ACE_SOCK_Acceptor acceptor; if (..
Get Public IP in C++This code uses libcurl to retrieve the public IP address by making an HTTP request to http://api.ipify.org.#include #include #include size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) { userp->append((char*)contents, size * nmemb); return size * nmemb;}std::string GetPublicIP() { CURL* curl; CURLcode res; std::string readBuffer..
GetMyIPs C++ CodeThis code retrieves the IP addresses of the system's network interfaces on both Windows and Linux platforms using C++14.#include #include #include // Platform-specific includes#ifdef _WIN32#include #include #pragma comment(lib, "ws2_32.lib")#else#include #include #include #include #include #endifstd::vector GetMyIPs() { std::vector ipAddresses;#ifdef _WIN32 // Initialize W..
INI 파일을 읽고 데이터에 접근할 수 있는 간단한 클래스를 구현하려면, 표준 라이브러리만 사용하여 파일을 파싱하는 로직을 작성할 수 있습니다. 다음은 기본적인 INI 파일 형식을 읽고 데이터에 접근할 수 있는 C++ 클래스의 예제입니다.주요 특징파일 읽기:파일을 줄 단위로 읽으며 섹션, 키, 값을 파싱합니다.공백 및 주석 처리:공백을 제거하고 ; 또는 #로 시작하는 주석을 무시합니다.데이터 저장:섹션(std::string)과 키(std::string)를 기반으로 값을 저장합니다.오류 처리:없는 섹션이나 키에 접근하려고 할 때 예외를 던집니다.간단한 API:섹션 또는 키 값을 손쉽게 가져올 수 있습니다.#include #include #include #include #include class IniPar..
주요 기능 설명환형 큐:m_vQueue 벡터를 사용하여 환형 버퍼를 관리합니다.m_nHead와 m_nTail을 사용하여 큐의 시작과 끝을 관리합니다.멀티스레드 동작:std::mutex와 std::condition_variable을 사용하여 스레드 안전성을 보장합니다.Push와 Pop은 동기화되어 있으며, 상태에 따라 조건 변수를 사용하여 대기 상태를 처리합니다.큐 크기 확장:Push 메서드는 큐가 꽉 찬 경우 Resize를 호출하여 크기를 두 배로 확장합니다.큐 크기 축소:Pop 메서드와 MonitorQueue 메서드는 큐 크기가 일정 비율 이하로 줄어들면 크기를 절반으로 축소합니다.크기 축소는 최소 용량(m_nMinCapacity) 이하로는 진행되지 않습니다.모니터링 쓰레드:MonitorQueue 메서..
#pragma pack 지시자는 구조체, 클래스, 또는 유니언의 멤버들이 메모리에 어떻게 배치되는지를 제어하는 데 사용됩니다. 기본적으로 컴파일러는 멤버들을 특정 바이트 경계에 맞추기 위해 패딩을 추가하여 최적의 성능을 보장하지만, 특정 상황에서는 이 패딩을 제거하고 메모리 사용을 최소화해야 할 필요가 있습니다. 이를 위해 #pragma pack을 사용하여 멤버들의 정렬 단위를 변경할 수 있습니다.#pragma pack 사용법#pragma pack(push, 1)과 #pragma pack(pop)은 구조체, 클래스, 유니언의 멤버 정렬을 제어하는 데 사용됩니다. 이 설정은 데이터 패딩을 줄여 메모리 사용을 최적화하거나, 파일 포맷 및 네트워크 프로토콜과 같은 특정 데이터 포맷과의 호환성을 위해 자주 사용..
- Total
- Today
- Yesterday
- 디자인패턴
- ReFS
- 서귀포블루버블
- 블루버블다이빙팀
- 암호화
- Thread
- 성산블루버블
- 패턴
- Build
- 현포다이브
- 제주도
- C++
- 윈도우
- C
- 스쿠버다이빙
- Windows
- ip
- 양파다이브
- 서귀포
- 블루버블다이브팀
- Linux
- DLL
- OpenSource
- 울릉도
- 리눅스
- 다이빙
- RSA
- 블루버블
- C#
- PowerShell
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |