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
[76411] Re:TIdTCPServer 프로그램 종료 방법 문의드립니다.
firstman [] 500 읽음    2023-01-16 19:39
IdTCPServer1->OnDisconnect  = NULL;
을 추가해야 Active=false;가 동작을 제대로 하네요.

인터넷 링크 입니다.
https://stackoverflow.com/questions/54467521/tidtcpserver-hangs-when-setting-active-false


newhuni 님이 쓰신 글 :
: 안녕하세요.
: TIdTCPServer, TIdTCPClient 컴포넌트를 이용하여 프로그램을 작성하고 있습니다.
: 아래는 Server 프로그램에서 프로그램 종료시 수행하는 동작입니다.
: 연결된 클라이언트와 연결을 해제하고 프로그램을 종료합니다.
:
: 그런데 가끔 통신중인 서버 프로그램을 종료해 버리면 "응답없음"현상이 발생합니다.
: IdTCPServer1->Active = false; 이 부분에서 발생하는 것으로 보입니다.
: try{}catch{}문을 사용해도 사라지지 않네요.
: 어느 부분을 확인해야 할지... 조언 부탁드립니다.
:
: void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
: {
:     TList *list;
:     TIdContext *AContext;
:     list = IdTCPServer1->Contexts->LockList();
:
:     try
:     {
:         for(int i=0;i<list->Count;i++)
:         {
:             AContext = reinterpret_cast<TIdContext *>(list->Items[i]);
:             AContext->Connection->Disconnect();
:         }
:     }
:     __finally
:     {
:         IdTCPServer1->Contexts->UnlockList();
:     }
:
:     IdTCPServer1->Active = false;
: }
:

+ -

관련 글 리스트
72768 TIdTCPServer 프로그램 종료 방법 문의드립니다. newhuni 3553 2015/06/15
76411     Re:TIdTCPServer 프로그램 종료 방법 문의드립니다. firstman 500 2023/01/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.