본문 바로가기

전체 글

(95)
(remote) function dispatch~ 전에 관련 글을 쓰고 나서 오랜만에 그에 대한 글을 추가합니다. 이제 테스트를 마쳤습니다~ 간단한 자료형(point가 포함되지 않은)인 경우가 아닌, point 가 포함된 데이터를 넘겨서 처리하게 하려고 하니 파생적으로 여러가지 모듈이 추가로 개발되었네요.. 이제 IDL로 이러한 루틴을 Simple하게 만들 방법을 궁리해 봐야겠습니다~ struct sub_arg { int a; char *b; }; // 실행할 함수 int invoke_test( struct stat *fs, char *name, struct sub_arg *sub) { fprintf( stderr, " invoke: '%s'\n", name); fprintf( stderr, "\t fs.st_size: %ld\n", fs->st_siz..
IDL 컴파일러... IDL을 사용해 보려고, 우선 컴파일러 부터 찾아 보았습니다. 그중에 XPIDL이라는 컴파일러가 상당히 마음에 들었습니다. Mozilla 프로젝트의 XPCOM에 포함되어 있는 컴파일러 이면서, Gnome의 libIDL기반으로 개발이 되어 약간의 수정 만으로 원하는 컴파일러의 output을 만들수 있다는 장점이 있어 좋네요~ http://developer.mozilla.org/en/docs/XPIDL 제가 원하는 접근 방식과는 약간의 차이가 있지만, IDL이라는 interface가 살짝 마음에 드네요~ ^^~ 참, Windows Live Writer을 사용해 처음으로 BLOG글을 작성해 봤습니다~
패킷과 함수의 1:1 맵핑~ EncoreNet의 RMI가 IDL을 사용해 코드를 만들어 준다는 jacking님 말씀에.. IDL을 찾아 보았습니다. 윈도우에서 COM을 사용해 보지 않은 저로서는 상당히 어려워 보이더군요.. 초보자도 바로 사용하기에는 어려워 보였습니다^^; 그래서 제 나름대로 맵핑시키는 구조를 만들어 보기 위해, CoSingleInvoke() 라는 놈을 만들어 나름대로 최적화를 (어제 올린 부분의 오버헤드가 많아 asm으로 새로 만들었죠~) 해서 구조를 만들어 보려 하고 있습니다. 제가 원하는 스타일은 class Player: public wsaio::handler, public relevant::actor { public: // 자동 생성 필요 // INTERFACE { // BOOL PACKET_MOVE( Pla..
EncoreNet이라는 네트워크 프레임워크의 RMI??... GPGStudy를 통해 최근 배현직(imays)님이 만드신 EncoreNet이라는 네트워크 엔진을 보았습니다. 엔진에 대한 설명을 보면서, 게임에 상당히 최적화 되어 있다는 느낌을 받았습니다. 그 중에 RMI(Remote Method Invocation)라는 기능을 보았습니다. 함수 개발에 있어 상당히 매력적으로 보였습니다. Remote Method Invocation의 약자입니다. 일반적인 네트워크 프로그래밍에서, 메시지 타입, 메시지 헤더 구조체, 송신 함수, 수신 처리 함수를 개발자가 직접 만드는 것이 일반적인데, RMI를 이용할 경우 메시지에 들어갈 내용물을 함수 선언처럼 작성하기만 하면 메시지 타입부터 송수신 처리 루틴까지 모두 컴파일러에 의해 자동 생성됩니다. 또한 EncoreNet™의 RMI..
요즘 개발에서 사용하는 소켓 처리 모델~ 여러가지 방식의 네트워크 처리 모델을 사용해 봤습니다. 구현 하는 네트워크 엔진에 따라 틀리겠지만, IOCP모델은 지금의 방식이 최선이라 생각됩니다. 대부분 이러한 방식의 구현 방식을 사용하시리라 생각됩니다. Adapter IOCP로 할당되어 지는 모든 소켓을 관리 - 리소스관리자 Acceptor AcceptEx()기반의 소켓 listener Connector ConnectEx()기반의 연결 handler Handler 소켓과 1:1 대응되는 이벤트 핸들러 - Cache Filter : 데이터 유형에 따라, Overlap되는 cache buffer - Event : 이벤트 발생 처리를 위한 handler 실제 구현할때도 상당히 깔끔해 지는 장점이 있네요... 여러분 들의 개발 모델은 어떠세요? 참고로, ..
[C++] STL을 사용한 linked map 구현~ 최근 LRU Cache 구현을 위해 STL을 사용한 template 기반의 class를 찾았습니다~ (예전 같으면 그냥 구현을 했을텐데.. 이것도 귀찮아 지네요^^) 필요하신 분들이 있을것 같아 올립니다~ #include #include #include template > struct linked_map { typedef KeyType key_type; typedef MappedType mapped_type; typedef std::pair value_type; private: typedef std::list< ..
[기사] "리눅스-유닉스, 한판 붙자"…한국MS... 드디어 서버 2008이 발표되었습니다.. 사뭇 기대가 됩니다. "그 동안 윈도의 문제점으로 지적됐던 것들을 모두 해결했다." 한국마이크로소프트 하봉문 이사는 최근 아이뉴스24와의 인터뷰에서 "문제는 윈도서버 2008에서 모두 해결했다"고 호언한다. 마이크로소프트가 윈도NT 3.5를 출시한 후 배운 모든 기술을 새롭게 출시된 윈도서버 2008에 집대성해 녹여 놨다는 것. 원문은 http://news.naver.com/photo/read.php?mode=LTD&office_id=031&article_id=0000129577&section_id=105&view=all&type=1 윈도서버 2008에 내장된 '서버 코어' 기능을 사용하면 GUI를 곧장 텍스트 환경으로 전환해 사용할 수 있다. 이렇게 하면 윈도서..
[기사] “윈도 100% 호환 국산OS 내년 3월 출시” 공언 티맥스에서 OS를 만든다고 하는군요.. 과연, 윈도우 진영과 리눅스 진영 중 어느쪽에 더 유사하게 나올까요? 아무래도 마이크로소프트가 가지고 있는 특허관련 부분을 어떻게 피해 갈지 궁금합니다. “라이선스 문제 등이 있을 것인데 MS와 협의는 됐는가”는 질문에 김대승 티맥스소프트 본부장은 “일부 API의 구현 방식에는 라이선스가 있는 것이 사실인데, 이를 피하는 방법을 고민하고 있다”고 설명했다. 특정한 저작권을 우회해 구현하겠다는 뜻이다. MS와 협의를 하지 않고 독자적으로 진행하고 있다는 점을 반증하고 있다. 그리고, 리눅스에 대해 비난한 부분도 있군요.. 관계자는 “외국 업체들에 의해 OS 기술과 시장이 독점되어 있다”며 “특히 업무용 소프트웨어 등 대부분의 응용 소프트웨어가 MS 윈도 기반이기 때문..