오늘 잠시 작업 폴더를 정리하다가 추억의 물건들(?)을 발견하였습니다. . . . 네, 사실 이번에 만든 Intercreate 라이브러리가 창조에서 써먹을 수 있는 소켓의 첫 시도가 아닙니다. -_- 옛날에 제가 비공식적으로 몰래-_- 만들고 있던 몇 가지의 프로젝트가 눈에 보이는군요.
그 중 처음이 2004년 6월...즈음에 만들었던 ArmNetLib 이라는 거네요. 그 당시 아마 아름 엔진을 만들고 나서 후속타로(?) 아름넷 이라는 라이브러리를 만들 계획이었나 봅니다.
결과요? 보시는 바와 같이 실패했습니다.(실용화 실패) -_- 지금 살짝 보니 구조가 꽤나 복잡하구요... 무엇보다 역시 이벤트 전달 방식이 문제였습니다 -_- 연결되었을 때, 데이터를 받았을 때... 이런 각종 이벤트를 위한 창의 핸들을 각각 설정하고, 여기서 특정 메시지를 보낼 수 있게 해놨었군요. 그 메시지란, "버튼을 클릭했을 때" 를 발생시키는 메시지네요...
창조로 테스트 했던 프로젝트는 없지만, 분명 이 당시 어쨌든 소켓을 만들어서 데이터 대충 보내보고 성공은 했지만 사용하기 너무 불편해서 조용히 접었던 기억이 나는군요. 버그도 조금 있었고요. 그래도 데이터가 오가긴 오갔습니다.
참고로 말씀드리자면, 이 라이브러리의 함수들은 모두 arm 으로 시작했군요.
2차 시도는 2004년 9월 즈음에 했네요. CreateAllSock 이라는 이름의 라이브러리 였습니다. 아마 제대로 해볼 마음이 생겼나봅니다.
마찬가지로 실패했습니다.(기능상 실패) -_- 구조는 반면에 너무 간단해졌군요... 덕분에 사용하기가 더 까다로워졌습니다. 이전의 ArmNetLib 에서 패배를 맛봤기 때문인지, 이번에는 BSD 소켓을 "정석적으로" 사용하는 스타일을 고집했군요. 즉, 되풀이를 통해서 계속 데이터가 있나 없나 검사해서 있으면 받고 없으면 말어...하는 식으로 동작했습니다. 무식했지요.
그나마, 이 라이브러리는 TCP나 UDP를 고를 수 있었지만 어째 UDP쪽은 사용할 수 있는 함수가 없군요. 여튼 사용 방법이 무자비하긴 했지만 그래도 꽤 만족스럽게(그리고 느리게) 동작했던지라, 이대로 밀고 나가고 있었는데...
아뿔싸! 안타깝게도 이 라이브러리는 그만 고장이 나버렸습니다 -_- 뭘 어떻게 했는지는 모르지만, 어느 순간부터 갑자기 아예 동작을 하지 않게 되어버렸기 때문에 계속 만지작 거리다 결국 포기해버린 비운의 라이브러리지요.
아마 이 라이브러리는 스스로도 꽤 기대작이었는지 다른 분께도 언급을 했었을 겁니다.
이 라이브러리의 함수는 모두 ca로 시작했군요.
이러다 저러다, 드디어 새로운 이벤트 전달 방식을 깨달은 뒤 새로 Intercreate 라이브러리를 만들게 되었습니다. 그게 잘 동작하니 일단 정신적으로도 안정되는군요[-]
그간 몰래 만들던 소켓 라이브러리는 1) 이벤트 전달 방식 2) 소켓 자체의 처리 방식 이 문제였는데 순식간에 두 가지 핵심 문제가 해결되어버리니 드디어 완성작이 나오게 된 거죠...후후
여튼 이렇게 나름대로 여러 시도 끝에 겨우 만들어낸, 속 사정이 깊은 라이브러리인 만큼, 여러분들도 잘 사용해주시면 고맙겠습니다~ |
|