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
[72768] TIdTCPServer 프로그램 종료 방법 문의드립니다.
newhuni [] 3567 읽음    2015-06-15 14:18
안녕하세요.
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 3567 2015/06/15
76411     Re:TIdTCPServer 프로그램 종료 방법 문의드립니다. firstman 517 2023/01/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.