[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
prev 1 2 3 next