E D R S I H C RSS
ID
Password
Join
비평가들의 말에 신경을 쓰지 마라. 비평가를 찬양하는 동상이 세워진 적은 없다.―장 시벨리우스

[[Include(분류/network)]]

Contents

1 ACE 관련 서적
1.1 오탈자 및 잘못된 부분 정정표
2 news
3 주요 링크
4 설치관련
5 편역물들
6 TAO 관련
7 CIAO 관련
8 자작 문서들
8.1 책에서 설명하지않은 ACE 기능
9 ACE Tutorial 번역
10 링크
11 잡기장

Google Groupskaug에 가입
이메일:
groups-beta.google.com에서 그룹 글 열람
스팸을 방지하기위해 확인과정이 있습니다.



1 ACE 관련 서적 #

http://www.infopub.co.kr/l_pic/06000145.gifhttp://www.infopub.co.kr/l_pic/06000169.gifhttp://kangcom.com/l_pic/200407290003.gif

1.1 오탈자 및 잘못된 부분 정정표 #

CNP1 정정사항 CNP2 정정사항

2 news #

3 주요 링크 #

4 설치관련 #

  • ACE/VC6
  • ACE/linux
  • ACE/mingw - mingw 관련 팁
  • ACE/설치/내장서비스UNIX에설치하기
  • ACE_INSTALL 문서 번역
  • FreeBSD 설치 : devel/ACE 포트에서 make install clean하면 간단히 설치됩니다. 각각 /usr/local/include/ace /usr/local/lib에 컴파일되어 복사됩니다. (.cpp, .inl화일들은 모두 include/ace에 들어가더군요.) kqueue는 여전히 공식적으로 지원되지 않는 듯.

5 편역물들 #

  • Overview of ACE - 배포본내에 있는 소개문서를 번역한 것입니다.
  • ACE 기본 서비스 개요 - ACE에서 제공하는 기본 서비스들에 대한 개요입니다. (배포본에 포함되어있습니다)
  • ACE/튜토리얼/메세지큐 - ACE_tutorial.pdf 화일에서 메세지 큐 부분만 번역.
  • ACE/reactor튜토리얼 - ACE_tutorial.pdf 화일 번역. Reactor에 대한 부분만 번역합니다.
  • Proactor - 비동기 이벤트를 디스패칭 및 디멀티플렉싱하기위한 객체 행동 패턴에 대한 논문. CPIO 및 aio* 계열의 함수를 사용해서 디멀티플렉싱을 하시던 분들은 관심을 가지셔도 좋을 듯. win32 -> 솔라리스 -> linux 순으로 성능이 좋다는군요. (FreeBSD는 모르겠습니다)
  • ACE Reactor의 디자인과 용도 - reactor 패턴에 대한 사용법입니다. 원본 pdf가 꽤 되는 관계로 일부만 짬짬히 가져오고 있습니다.
  • ACE/ManageLargeNumberNetworkConnections - huston의 월간 뉴스레터의 내용을 편역한 것입니다.

6 TAO 관련 #

7 CIAO 관련 #

8 자작 문서들 #

  • ACE/메세지블럭과ACE_Task예제 - ACE_Task 클래스를 사용한 간단한 쓰레드 생성과 내장된 메세지 큐를 이용하여 네트워크에서 흔하게 발생하는 제공자/소비자 부분을 해결해 본 글입니다.
  • ACE/메세지큐테스트소스
  • ACE/ACE_High_Res_Timer사용상의주의사항 - 게임에 tick 대용으로 사용할 수도 있는데... 적어두는게 좋을 거 같아서 만듭니다.
  • ACE/log처리요약및팁 - 경험적인 내용 간단 요약.
  • ACE/ACE_Event_Handler_T 이야기

8.1 책에서 설명하지않은 ACE 기능 #

  • ACE/UUID 만들기 - COM이나 Activex 콘트롤 만들때 흔히 나오는 GUID 생성 클래스가 있더군요. 문서화가 되어있지 않아 경험적으로 적어봅니다.
  • ACE/ACE_Singleton 개요 - doxygen 문서 번역.
  • ACE/ACE_FILE_IO 예제 - 화일 입출력을 간단히 구현하게 해주는 클래스입니다. 꽤 편리합니다. reactor와도 잘 붙고요.
  • ACE/ACE_Task사용요약 - CNP2권 및 다른 내용을 보고 요약한 것입니다.

9 ACE Tutorial 번역 #

  • [http]http://www.vitamincpp.net/wiki/wiki.php/ACE - 여기있는 튜토리얼 외의 다른 튜토리얼에 대한 번역.
  • ] [http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/tutorials/001/page01.html 원문 - ACE 프로그래밍 스타일에 대한 소개.
  • ] [http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/tutorials/002/page01.html 원문 - 1번에서의 소스에 대한 단순화. 일반적으로 이런식으로 작성하게 됩니다.
  • ] [http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/tutorials/003/page01.html 원문 - 단문 메세지를 전송하는 초간단 클라이언트 작성법.
  • ] [http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/tutorials/003/page01.html 원문 - 연산자 오버로딩을 사용한 클라이언트 라이브러리 작성법. 별로 도움안됨. -_-a
  • ACE튜토리얼005/멀티쓰레드를접하기전에 - 좀더 깔끔하게 이전 서버 소스를 정리.

10 링크 #

11 잡기장 #


좋은 정보 고맙습니다. =) -- 이상훈

별말씀을... :) 그냥 연결들일 뿐인데요. 도움되셨다니 다행입니다. - redpixel

ACE를 원하는 부위별로 쪼개서 사용할 순 없나요? 너무 덩치가 큰 느낌이 듭니다

subset이라는 프로젝트가 별도로 진행중입니다. 아직 완벽하지는 않지만 분리가 어느정도 가능한걸로 알고 있습니다. ACE 배포본에서 docs/ACE-subsets.html 문서를 참조하세요. (저도 해빌드해본적은 없어서 자세한건 모릅니다만... :) ) DLL로 빌드하면 3메가정도 되는데 그냥 DLL 방식으로 사용하시는 것은 어떠실른지요? - redpixel

http://www.vitamincpp.net/wiki/wiki.php/ACE 에 튜토리얼6, 7번 번역해서 올렸습니다. 번역이 수준은 좀 떨어지지만, 필요하신 분은 보세요.

ace 프로그래머가이드 p191 예제실행시 error C2079: 'lock_' uses undefined class 'ACE_Null_Mutex'란 에러가 뜹니다.. 고민을 해봤지만 이유를 잘 ^^;; 좀 갈카 주세요 -- JinHee 2004-12-02

ACE Programmer's Guide를 보고 있는데요... 책에 있는 소스가 CD에 있나요?? 못찾겠는데... -- 투더리 2004-12-08

배포본에 있습니다. ACE를 다운받아 압축을 풀어보시면 안에 들어있습니다. :) -- redpixel 2004-12-08

ACE에서 입출력 스트림분리는 어떻게 하지요??? 보통 입출력 소켓프로그래밍에서 하나의 소켓에 연결된 파일디스크립터를 dup로 복사해서 두개를 생성해 소켓에 대한 입출력을 분리하는데요.. ACE_SOCK_Stream을 사용할때는 어떻게 해야 하나요? 입출력용으로 두개를 생성해야 하나요? 죄송하지만 도움말 좀 부탁드립니다. -- 꿀꿀... 2004-12-13

타오 설치시에 에러가 나는데요.. 이거 여기 올려도 돼나? 아님 죄송여.

CC -mt -g -instances=explicit -DACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION -DSUN_CC_HAS_PVFC_BUG -I/opt/ACE_wrappers -I/opt/ACE_wrappers/TAO -DACE_HAS_EXCEPTIONS -DACE_INLINE -Iinclude -Ibe_include -Ife -DTAO_IDL_PREPROCESSOR=\"CC\" -mt -R /opt/ACE_wrappers/ace -R./ -xildoff -L/opt/ACE_wrappers/ace -L./ -L/opt/ACE_wrappers/TAO/tao -o tao_idl .obj/drv_args.o .obj/drv_preproc.o .obj/tao_idl.o -lTAO_IDL_BE_DLL -lTAO_IDL_FE_DLL -lACE -lsocket -ldl -lnsl -lgen -lposix4 Undefined first referenced
symbol in file
int ACE_Hash_Map_Manager_Ex<ACE_String_Base<char>,char*,ACE_Hash<ACE_String_Base<char> >,ACE_Equal_To<ACE_String_Base<char> >,ACE_Null_Mutex>::shared_find(const ACE_String_Base<char>&,ACE_Hash_Map_Entry<ACE_String_Base<char>,char*>*&,unsigned&) /opt/ACE_wrappers/ace/libTAO_IDL_FE_DLL.so int ACE_Hash_Map_Manager_Ex<ACE_String_Base<char>,char*,ACE_Hash<ACE_String_Base<char> >,ACE_Equal_To<ACE_String_Base<char> >,ACE_Null_Mutex>::close_i() /opt/ACE_wrappers/ace/libTAO_IDL_FE_DLL.so ACE_Hash_Map_Manager<ACE_String_Base<char>,char*,ACE_Null_Mutex>::ACE_Hash_Map_Manager(ACE_Allocator*) /opt/ACE_wrappers/ace/libTAO_IDL_FE_DLL.so int ACE_Hash_Map_Manager_Ex<ACE_String_Base<char>,char*,ACE_Hash<ACE_String_Base<char> >,ACE_Equal_To<ACE_String_Base<char> >,ACE_Null_Mutex>::bind_i(const ACE_String_Base<char>&,char*const&,ACE_Hash_Map_Entry<ACE_String_Base<char>,char*>*&) /opt/ACE_wrappers/ace/libTAO_IDL_FE_DLL.so int ACE_Hash_Map_Manager_Ex<ACE_String_Base<char>,char*,ACE_Hash<ACE_String_Base<char> >,ACE_Equal_To<ACE_String_Base<char> >,ACE_Null_Mutex>::rebind_i(const ACE_String_Base<char>&,char*const&,ACE_Hash_Map_Entry<ACE_String_Base<char>,char*>*&) /opt/ACE_wrappers/ace/libTAO_IDL_FE_DLL.so ld: fatal: Symbol referencing errors. No output written to tao_idl make[4]: *** tao_idl Error 1 make[4]: Leaving directory `/opt/ACE_wrappers/TAO/TAO_IDL' make[3]: *** Makefile.EXE.mkfile Error 2 make[3]: Leaving directory `/opt/ACE_wrappers/TAO/TAO_IDL' make[2]: *** all Error 2 make[2]: Leaving directory `/opt/ACE_wrappers/TAO/TAO_IDL' make[1]: *** TAO_IDL.subdir Error 2 make[1]: Leaving directory `/opt/ACE_wrappers/TAO' make: *** all.nested Error 2


어찌 해결해야 하나요?

참고로, Solaris 2.8 에 컴파일러는 Sun Studio 9의 CC 컴파일러로 깔고 있음다. ACE는 잘 깔렸거든요? TAO_ROOT도 $ACE_ROOT/TAO로 했고, LD_LIBRARY_PATH도 아래와 같구요. /opt/ACE_wrappers/ace:/opt/ACE_wrappers/lib::/usr/local/lib:/usr/lib:/lib:/opt/ACE_wrappers/lib

머가 문제인지.. -- 병달 2004-12-20

죄송하지만, 제가 TAO를 쓰지 않아서 뾰족한 답변을 드리기 어렵습니다. AUG에 질문을 올려놓으시는게 어떨까요? -- redpixel 2004-12-20

"ACE 5.4.3 HTML help 화일"이란 ACE 다운로드 사이트에서 받을 수 있는 Doxygen 문서와는 다른 포멧인가요? -- 김남식 2005-01-13

아닙니다. Doxygen 문서 컴파일한 겁니다. _ 생각보다 귀찮은 작업이니 이미 해놓은거 드리겠다는 의미죠. -- redpixel 2005-01-13

^^ 빠른 답변 감사합니다. 저는 Network Programing for Microsoft Windows 역자입니다. 요즘 권태인님 번역서 시리즈로 열심히 공부하고 있습니다. 여기 <삭제됨> 도움말 컴파일하신 것 보내주시면 공부에 도움되겠습니다. -- 김남식 2005-01-13

보내드렸습니다. -- redpixel 2005-01-13

이상하게도 ACE_TRACE가 찍히질 않네요. ACE_DEBUG는 찍히는데 말이죠. 그리고 들여쓰기 지시자(%I)도 작동 않되구요. 뉴스 그룹을 뒤져보니 config.h에 #define ACE_NTRACE 0 넣고 ACE 다시 컴파일하라는 말이 있던데... 흠... 도움 부탁드립니다. -- 김남식 2005-01-14

http://redwiki.net/aug/viewtopic.php?t=64 참조하세요. :) -- redpixel 2005-01-14

감사합니다. 그렇게했더니 잘 되네요. qna 게시판있는 걸 몰랐네요. 다음부터 그쪽으로 올리겠습니다. 즐거운 주말되세요.^^ -- 김남식 2005-01-14

안녕하세요 이제 막 ACE공부를 시작해 보려고 하는 학생입니다. 약 8개월 간의 프로젝트로(졸업작품을 위해서요) 화상처리와 네트워크를 이용한 프로그래밍을 하려고 하는데요 Windows 기반의 서버, 클라이언트구요 프로그래밍은 학교에서 내주는 프로젝트들까지는 쉽게 해결할수 있었는데.. ACE관련 문서들을 보다보니 정말 모르는게 너무 많아서 막막합니다. 8개월 프로젝트 진행을 하는데 ACE를 새로 공부해서 하는것이 무리일지. 그냥 윈도우 소켓 프로그래밍을 추천하시는지 알고 싶습니다. ACE자료들을 읽어보고 공부가 너무 하고싶은데 졸업작품이 진행이 늦어지면 졸업을 할수가 없거든요. 그래서 사활이 걸린거라.. 어느 쪽을 추천하시는지 알고싶습니다 -- 보영 2005-01-28

학교에서 배우신 내용이 winsock 프로그래밍이시라면 그냥 소켓으로 하시는 편이 빠르실겁니다. ACE는 어느정도는 네트워크 프로그래밍 지식이 필요하다고 생각이 들어서... -- redpixel 2005-01-28

안녕하세요 저는 지금 tao 를 배우고 있는 사회 초년생 입니다. 현재 naming service 에 대해 이해 하려고 노력하고 있어요 참고 하는 코드는 tao 책에 나와 있는 예제 소스를 보고 있는데요 naming service 에대한 개념만 나와 있을 뿐 소스가 동작하는 과정들에 대해서는 내용이 불충분 해서요(물론 제 기준에서요;;) 그런 이유로 여기 이렇게 글 남기게 되었는데요 소스에 대해 간단히 대화할 수 있었으면 좋겠는데 가능 할지 모르겠습니다. 바쁘실 텐데 무리한 부탁인줄 알면서도 글 남겨서 죄송하구요.. 그럼 여기 msn 주소 남기고 가겠습니다. facered79@hotmail.com 그럼.. -- 김동국 2005-03-11

TAO에 대해서는 저도 실무적인 이해를 하고 있지는 않고요. ACE에서의 naming service는 어느정도 설명드릴수 있습니다. 서점에 가셔서 APG를 잠깐 읽어보셔도 좋고요. :) -- redpixel 2005-03-11

아 레드위키님 글 잘 읽었습니다.. 그렇군요.. 음.. 네이밍 서비스에 대해서 계속적으로 보고 있는데요 원서를 보고 있어선지 그 이해도가 조~금 불투명 한거 있져.. ㅎㅎ 확연 하지가 않고 안개조금낀 그런 기분 있자나요 ^^ 암튼 그러네요 지금..
그런데요 제가 이제 네밍 서비스 이용해서 마니 심플한 소스를 썻는데요 같은 컴퓨터에서
로컬로 클라이언트 서버간 데이터 교환이 이뤄지는것을 확인 했어요 그런데 TAO 의 목적은 원격지의 객체를 이용하는것이잖아요 그래서 클라이언트실행파일만 다른 머신으로 복사한후 실행을 시켰더니 라이브러리를 참조 못한다구;; 그러네요 이럴때는 어케 해야 하는건가요.. 메이크시에 어떤 옵션을 줘야 하는것인가요 아니면 모든 컴퓨터에 ACE+TAO 를 다 설치 해야 하는것인가요. 흠 두서 없는 질문 끝까지 읽어 주셔서 감사 하구여. 전 지금 레드햇 8 과 C++ 을 사용하고 있습니다... 그럼 환절기 감기 조심 하세요~~ ^^ -- 150.183.110.177 2005-03-14

..\..\..\ace/config-lite.h(24) : fatal error C1083: Cannot open include file: 'ace/config.h': No such file or directory

이런 에러가 나서 문의 드립니다. config.h.in 파일은 있는데 config.h 파일은 없더군요.

도움 주시면 고맙겠습니다.

이 메일은 ekklesia315@daum.net 입니다.

좋은 하루되세요. -- 김진수 2005-04-17

메일로 답장드렸습니다. 좋은 하루되시길... -- redpixel

훔.. 제가 너무 몰라서 그러는데요. 자바에서는요. Hashtable을 아래처럼 쓸 수 있잖아요? This example creates a hashtable of numbers. It uses the names of the numbers as keys:


Hashtable numbers = new Hashtable(); numbers.put("one", new Integer(1)); numbers.put("two", new Integer(2)); numbers.put("three", new Integer(3));
To retrieve a number, use the following code:


Integer n = (Integer)numbers.get("two"); if (n != null) {
System.out.println("two = " + n);
}


ACE에서 위와 같이 특정 객체와 식별자를 같이 넣어서 해당 식별자로 객체를 뽑고 할 수 있는 클래스가 뭐가 있나요? 그리고, 그것의 간단한 예좀 알려주심 감사해요. -- Anonymous 2005-05-18 11:46:55

C++은 타입이 강한 언어라서 위와 같이 일반론적인 해시테이블은 쓰기 어렵습니다. 가장 좋은 방법은 STL의 map<> 또는 hashmap<> 컨테이너를 쓰시는 것이 좋지만, 굳이 ACE에 있는 컨테이너를 쓰실려면 ACE_Hash_Map_Manager<> 클래스를 사용하면 됩니다. STL쪽이 약간 쓰기가 편합니다. 아니면 boost 라이브러리의 [http]property map은 어떠신지요? _ 예제 코드는 제가 시간이 나면 별도의 아티클을 만들어 위키에 올리겠습니다. -- redpixel 2005-05-18 14:13:59

감사합니다. ACE_Map_Manager를 쓰기로 팀내 결정을 보았습니다. 이왕 Framework을 쓰는것으로 결정이 나서 가능한 ACE로 다 사용해야 할 것 같아서, boot나 STL은 기본 회피 상황입니다. ^^ -- Anonymous 2005-05-18 17:05:55

안녕하세요? 예전부터 자주 들렀었는데.. 오늘에서야 가입했네요. ^^*

질문이 있어서요.. 제목대로 입니다.

특정 사용자 정의 클래스 내에 정의되어 있는 Attribute Name 및 Attribute의 Type을 알 수 있는 ACE Framework에서 제공하는 API가 있나요?

알고 싶어요.. 방법을요.

그리고 또 하나 질문이 있는데요..

ACE_CDR을 이용해서 마샬링한 ACE_OutputCDR (데이터를 갖는 객체)를 받는 쪽에서 ACE_InputCDR를 이용해서 언마샬(디마샬)해서 실제 데이터를 뽑는 예제를 해 봤는데요.. 그건 문제가 없는데요.. 프로세스간 통신을 수행할 때 보내는 쪽에서 ACE_OutputCDR에 데이터를 먀살링 한 후, 다른 프로세스(다른 머신)에서 해당 객체를 받아야 ACE_InputCDR로 Copy Construct 후에 데이터를 뽑을 수 있는뎅... 어떻게 해야.. 생성한 ACE_OutputCDR을 원격지의 프로세스에게 전달할 수 있을까요? (자세한 설명을 부탁드릴께요.. 예제라든가..) memcpy를 이용한 방법도 생각해 봤는데.. 마샬/언마샬 대상의 사용자 정의 클래스 내에 char * 타입의 데이타가 있을 경우.. 문제일것 같아서요.. 물론, ACE_CDR::Char *를 이용할 예정이긴 합니다.

미리 감사드릴께요. 예제나, 접근 방법(클래스 명등)을 부탁드립니다. -- Anonymous 2005-06-15 18:38:42

FreeBSD에서 Dev_Poll_Reactor를 Reactor로 지정하여 사용하려고 하면.. 에러가 납니다. 성공하신분 계시면 방법좀 알려주세요. redwiki님께선 혹시 해보셨나요? -- 210.122.61.125 2005-10-04

FreeBSD에서는 epoll을 지원하지 않기 때문에 Dev_Poll_Reactor를 사용할 수 없습니다. kqueue를 사용해야하는데 아쉽게도 아직 ACE에서는 kqueue를 지원하지 않습니다. 리눅스를 쓰세요. :) -- redpixel 2005-10-04 15:05:16

안녕하세요~ 왕초보입니다. ACE_TRACE 예제 코드 실행중에 error C2065: 'LL' : undeclared identifier 자꾸 이런에러가 나는데 이게 무슨 뜻인가요.. < ACE_TRACE(ACE_TEXT("main")); > - 이 코드인데요.. LL? 라이브러리 위치등을 아무리 바꿔봐도 계속 오류가 나네요.. -- Roni 2006-06-04

()를 하나 더쓰셔야합니다. ACE_TRACE((ACE_TEXT("main"))); 이런식으로요. -- redpixel 2006-06-08 14:24:57

책에보면 ACE_TRACE(ACE_TEXT("main")) 이런식으로 되있고..이것도 적용이 되는거 같은데 왜 그런건가요?? 그리고 ACE_TRACE((ACE_TEXT("main")))로 해보니까 이번에는 ['L' : undeclared identifier] 이렇게 뜨네요..ACE는최신버전입니다. -- 124.49.36.17 2006-06-10

Great work! url=http://whprtdsk.com/wxvp/ahho.htmlMy homepage/url | url=http://fuhwumdy.com/oqko/qnvw.htmlCool site/url -- Patrick 2006-09-25

안녕하세요. 회사에서 ace 5.5.3 - ACE_Configuration_Heap을 쓰는데

assertt(( 0==conf.open("config_file") ));

assert((0==conf.remove_section(conf.root_section(),"section_key",1) ));

했을 때, section_key 아래에 서브 키가 하나라도 있으면 세그멘테이션 오류 납니다. 도저히 모르겠습니다. 버그일까요? 답변에 미리 감사드립니다. -- taeksoonp 2006-10-16

아. 위에 conf.open("heap_file") 으로 파일로 열었습니다... -- taeksoonp 2006-10-17 Comment

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:52
Processing time 0.6237 sec