반응형

Program/C & C++ 35

구글 프로토콜 버퍼 (Google Protocl Buffer)

PPT 작성 자료 googleProtocolBuffer.pdf Google Protocol buffer from knight1128 * 배경 RPC와 쉽게 연동, Not RPC 하나의 개념으로 다양한 언어에서 쓸 수 있게 구글에서 다양한 언어별로 개발 하다 보니. 통신을 위한 단일 표준이 필요 proto 파일 -> proto 컴파일러 -> 여러 언어로 변환 (java, python, c++)Not socket 구글 에서 2008년 7월 발표 이슈 제시 - XML 문제 - Parsing, serialization (debugging) - Portable : IDL처럼 사용 - Heavy Optimization - Language 지원 짧은 데이터의 송수신 용도/긴 데이터 송수신이 목표가 아님* XML 보다..

Program/C & C++ 2013.06.10

[boost] boost 동기화 객체 boost::shared_mutex

요즘 C++멀티플랫폼(리눅스, 윈도우즈) 서버쪽 작업을 하다보니 No Windows API를 추구하게 되네요 ㅠㅠ ㅋ 결국 boost도 윈도우상에서 돌아가면 내부적으로 windows api를 이용하고 있을텐데 리눅스로 포팅을 하게 되면 작업을 두번 작업을 해야되서 boost를 활용하게 되네요 ;;; 이번에는 멀티쓰레딩 개발시에 필요한 동기화기법에 대해서 설명하고자 합니다. 요즘 각각의 라이브버리 동기화객체를 제공하고 있는데, 이전까진 tbb(Threading Building Block)를 이용해서 했었는데, 이번엔 궂이 동기화 객체땜에 tbb 라이브러리를 쓰는것보단, 기존에 사용하고 있는 boost 동기화 객체를 이용하고자 이번 계기로 설명하고자 합니다. ^^ 보통 락에는 wirte lock, read ..

Program/C & C++ 2013.03.28

[boost] boost::asio::deadline_timer 를 이용한 timeout 설정

boost asio를 이용한 네트웍 개발을 할경우에 일정시간동안 통신을 하지 않은 불필요한 세션이 존재할경우 해당 세션 객체를 제거를 해야된다. 불필요하게 세션이 물려서 쌓여 있을 경우!!!서버쪽에서는 부담이다. 이를 해결 위해 방법은 여러가지로 존재한다. 간단한 방법으론 쓰레드를 따로 두어서 expired time이 초과한 객체를 검색하여 제거를 하면 된다. 그렇지만 이 방법은 boost를 사용하지 않은 네트웍 모델에서는 불필요하게 쓰레드를 생성하고 동기화 작업까지 포함하면 비용이 만만치 않게 된다. 그래서 필자의 말은 즉 boost에서 제공해주는 boost::asio::deadline_timer를 사용한 예제를 설명하고자 한다. #include #include #include #include clas..

Program/C & C++ 2013.03.28
반응형