[MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?!

이메일 보낼일이 있어서 코드 프로젝트에서 SMTP 코드를 배껴서 사용중이 었음

(원래 소스가 그렇게 되어 있었다오 -_- 쓰고 싶어서 쓴게 아님 ㅠㅠ

회사에서는 보통 c&p 디버깅 / 테스트가 일이라... 아 정말 싫다.)

그런데 이넘이 쓰레드 안아서 돌아가야할 필요가 있어서 않에 넣어서 사용하고 있는데

갑자기 뻑뻑 죽어버리는거임 - 아마도 MFC assertion? 에러 였던거 같은데...

디버깅 돌려보니깐 무슨 이름도 모르는 생판첨보는 MFC함수에 브포가 찍혀있고 -_-.....

함수스택타고 위로 올라가보니깐 CSocket.Create() 메소드 - 를 쓴 부분까지 올라오게 되더군여

이거 뭔소린가... 걍 싱글스레드 쓸땐 잘 작동하던 놈이 왜 이짓거리나...

분명히 그냥 socket은 thread-safe하다고 봤었는데 - 이상하다 -

그래서 구글링해 본결과 MFC버그라는 이야기도 있어서... 혹시해어 Create메소드만 고쳤는데

이렇게 하니깐 주소를 잘못참조했네 어쩌구 에러가.... 

그냥 그래서 (하라는대로?) 클래스에서 CSocket 멤버를 빼버리고

죄다  socket, send, recv, close 함수로 대체해버렸음 -_-...

-> MFC에서 Thread안에서 돌아가는 프로그램에서는 CSocket클래스를 쓰지말자??
(라고는 해도 아무리 봐도 그냥 땜질용 처방 같다 ;;; 원래문제는 따로 있을듯)

ps :  이부분에 대해서 좀 아시는 분은 댓글을. 뭐 자원을 더 할당하라 그런이야기는 있던...
Trackback 0 Comment 4
  1. Favicon of https://lsm1987.tistory.com BlogIcon 에그 2010.10.04 23:36 신고 address edit & del reply

    MFC ㄷㄷㄷ... 난해한 소스의 압박에 버틸수가 없다! 여서 OpenCV도 C#으로 래핑된 라이브러리 쓰고있지 OTL
    객체지향하라고 MFC 만들어놨는데 정작 소켓 클래스를 못쓰는건 무슨경우인가!!

    • lowid 2010.10.09 13:24 address edit & del

      뭐.... 예외처리 걸어놓은 이유가 있긴하겠지
      근데 문제는 내가 알수 없다는거... 위치를 봐도 도저히
      이해할수 없는 위치에 걸려있으니......
      어쨌던 thread내부에선 csocket안쓰기로 했다우..
      ps; 객체지향? 그게 뭐져?? ㅋㅋ 어짜피 그런거 신경쓰기보다
      "지금 일단 어떻게든 잘 돌아가면 된다" 마인드라 쩝...
      객체지향/유지보수는 신경도 안씀...
      이러면 안되는줄은 아는데...
      옆에서 그렇게 짜니깐 나도 걍 그렇게 짜버림..... 귀찮.

  2. Favicon of https://zeper.tistory.com BlogIcon zeper 2010.11.22 21:59 신고 address edit & del reply

    mfc 수업을 듣기는 했는데 C#으로 모든과제를 하다보니
    mfc 이야기는 하나도 모르겠네요.
    저도 OpenCVeh C#으로 된걸가지구 썼었던지라..ㅋ

    • Favicon of https://lowid.tistory.com BlogIcon Lowid 2010.11.26 00:18 신고 address edit & del

      저도 mfc 잘 모릅니당
      그냥 c&p나 할뿐....
      - 뭐... 반대로 전 C#을 모르잖아여? 그러니깐 서로 그게 그거......

prev 1 ··· 42 43 44 45 46 47 48 49 50 ··· 342 next