C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51135] Re:TClientSocket 생성시 다운비슷한 현상이 생깁니다
이의영 [justlee] 1315 읽음    2007-11-02 12:17
소멸자에서 바로 delete ClientSocket 하기 전에 ClientSocket->Close(); 을 먼저 호출해 보세요.


물소리 님이 쓰신 글 :
: class A에서 TClientSocket을 멤버클래스로 가지고 있습니다
: Class A생성자에서 TClientSocket을 생성(new)하고 Calss 소멸자에서 TClientSocket을 소멸(delete)하도록
: 되어 있습니다.
:
: 폼에서는 Class A를 멤버로 가지고 있으면서 동적으로 생성해야만 합니다.
: //-- Form생성자에서 m_A에 NULL값으로 초기화 한 후
: A* m_A == NULL;
: 특정 함수에서는 다음과 같이 코딩하였습니다
:
: if(m_A) delete m_A;
: m_A = new A;
:
: 위의 내용은 A클래스가 이미 생성되어 있으면 delete한 후 새로이 new를 해야하는 상황입니다.
: 그런데 위의 내용이 실행 될때는 첫번째는 정상 작동 되는데...다시 그 함수를 수행하게 되면
:
: 다운되는 현상이 발생합니다.
: 추측하건데 delete ClientSocket을 실행하면 TClientSocket이 완전히 소멸된 후 리턴되는 것이 아니라
: Socket관련 소멸자가 쓰레드로 따로 돌면서 소멸이 되는것으로 추측됩니다.
: 따라서 delete m_A; 후 바로 new를 하게 되면 TClientSocket이 소멸되는 사이에 기존 포인터에 새로운
: ClientSocket이 생성되면서 다운 현상이 나는 것으로 추정됩니다.
:
: 따라서 ClientSocket의 소멸자가 완전히  소멸되었는지를 확인할 수 있는 방법을 알고 싶습니다.
: 그러면 위와 같은 문제가 해결 될것으로 생각됩니다..
:
: 고수님들의 조언 부탁드립니다.

+ -

관련 글 리스트
51132 TClientSocket 생성시 다운비슷한 현상이 생깁니다 물소리 1368 2007/11/01
51135     Re:TClientSocket 생성시 다운비슷한 현상이 생깁니다 이의영 1315 2007/11/02
51137         Re:Re:TClientSocket 생성시 다운비슷한 현상이 생깁니다 물소리 1326 2007/11/02
51159             Re:Re:Re:TClientSocket 생성시 다운비슷한 현상이 생깁니다 아제나 1524 2007/11/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.