지금 소켓프로그램을 짜고 있는데요..
나중에 실제로 현업에서 쓰게 된다면..
프로그램 베이스가 MFC 베이스로 돌아가나요? API 베이스로 돌아가나요?
물론 DX 를 쓴다는 전제하에 질문입니다.
소켓도 써야하고 MFC도 써야하고 DX도 써야하고 API도 당연히 쓰고..
다 쓰는데..기본적으로 베이스가 알고 싶습니다.
둘 다 쓰는데...;;;
mfc는 툴 만드는데 많이 씁니다.
그런데 델파이나 빌더가 정말 툴 만들때에는 좋던데..^^;
2005.05.09 17:59:27 (*.107.113.162)
안군
MFC를 쓰면 느려진다... 는 생각때문에, 게임을 만들때는 MFC를 잘 안쓰는편입니다.
게다가 MFC의 가장 큰 장점 중 하나는 UI를 만들때 무지막지하게 편하다는 점인데,
그것이 윈도우 표준 UI 컨트롤들을 사용할 때에만 해당되는 이야기인지라...
DX를 사용하여서 UI를 일일히 만들어내는 경우에는 잘 안사용하게 되는 것 같습니다.
MFC를 써서 얻는 이득이 별로 없거든요...
P.S : MFC의 CSocket이나 CAsyncSocket은 IOCP 등에 비해서 효율이 많이 떨아지는 편입니다. 실제 벤치마킹 결과도 그렇구요.
2005.05.09 23:17:28 (*.58.216.216)
리피
저희가 지금 사용하고 있는것은 당연히 IOCP를 사용합니다..
CSocket이나 CAsyncSocket을 쓰면 MMORPG가 불가능하죠;;
제가 아직 실력이 부족해서 인지는 몰라도.
window.h 를 사용해서 만들면 MFC를 사용함에 있어서 충돌이 일어나더군요..
그 충돌때문에 물어 본것이었습니다.
MFC는 구현이라던가 그런데서 사용하고자 함이 아니고.
CFile 이나 CList에서만 사용하고자 질문을 올린것이었습니다. ㅡ.ㅜ
2005.05.10 14:57:57 (*.58.216.216)
리피
문제 해결했습니다 ^^ 도움주신분들께 감사합니다.
의외로 쉽게 해결되네요;;; 옵션;
2005.05.11 17:57:01 (*.187.227.238)
Excelsis
winsock2.h와 windows.h를 순서대로(순서 중요합니다) 인클루드 해주면 문제가 안생깁니다.
열거형이나 define 중복 주루루룩 나오면서 에러나는 거 보고 한 이틀간 데브피아 뒤진 기억이-_-
Network programming for Windows 2판 책을 봐가며 했는데, 거기서도 아무 말이 없어서-_-(아니 못본걸지도 모르지만;; ) 미묘한 배신감까지 느꼈었다는;;
2005.05.12 15:18:41 (*.107.113.162)
안군
아.. 사족이지만, CAsyncSocket을 쓴다고 MMORPG를 못만드는건 아닙니다. ^^;;
실제로 그걸 사용해서 서비스하고 있는 곳도 있어요. 어디라고 밝힐 수는 없지만.. (사실 회사 이름도 잘 기억이;;;)
존 서버 이동방식으로 만들어서 1000명 접속까지는 그럭저럭 커버한다더군요.
싱글스레드라서 동기화부분에 걸리는 오버헤드가 없기 때문에 가능한 모양입니다.
스레드간 동기화쪽에 대한 설계가 잘못되어있다면, IOCP 안쓰니만 못합니다;; 괜히 코드만 복잡해지구...
2005.05.13 13:34:01 (*.107.113.162)
안군
아.. 동접 1000명이 아닙니다. 존 당 1000명입니다. 존 별로 프로세스를 따로 돌리죠.
리니지 2 같은 심리스 방식이 아니라.. 음... 라그나로크나 뮤를 생각하시면 되겠네요. 지역이 바뀔때마다 존 이동이 있잖아요 로딩도 있고...
그 한 지역당 1000명이면 적은 숫자가 아닙니다 ^^;;
(게임 외 대부분에서는 API쓸일이 별로 없다고도 합니다.)