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
[37940] Re:indy에서 Connection Error처리???
이채호 [] 1335 읽음    2004-11-08 15:23
왕대박 님이 쓰신 글 :
: 음... 안녕하세요.  반갑습니다.
: indy를 사용해서 프로그램을 하고 있는데요...
: 해결이 않되는 문제가 있습니다. 왜그럴까???
:
: 서버와 클라이언트가 접속이되어서 데이터를 주고 받을때는 아무런 문제가 없고,
: 정상적으로 종료를 시켜서 진행을 하면 문제가 없는데~
:
: 어느 한쪽을 power off시켜서 강제로 종료해버리면
: 첨부와 같은 에러가 나옵니다. 그것도 몇십개나...
: 왜그럴까요?? 어떻게하면 해결이 될까요.... ??? 정말 궁금합니다.
:
: 대략의 내용은 아래와 같습니다.
: ////////////////////////////////////////////////////////////////////////////////
: void __fastcall TfrmMain::TCPServerExecute(TIdPeerThread *AThread)
: {
:     String          CMD;
:     String          RevMsg;
:     FCommModule*    m_pRev;   
:
:     try {
:         Application->ProcessMessages();
:         RevMsg = AThread->Connection->ReadLn();
:         m_pRev = (FCommModule*)AThread->Data;
:     }
:     catch(Exception& e) {
:         return;
:     }
:
:     if(RevMsg.Length() <= 0 )   return;             //empty data
:      try {
:         CMD     = RevMsg.SubString(1, 2);
:          FlashLED(nlsID, false);                         //수신되었다.
:        /////...............///////////////
:     }
: }
:
:
: ////////////////////////////////////////////////////////////////////////////////
: void __fastcall TfrmMain::TCPServerDisconnect(TIdPeerThread *AThread)
: {
:     // Retrieve Client Record from Data pointer
:     FCommModule* pdis         = (FCommModule*) AThread->Data;
:     AThread->Connection->Disconnect();
: //    AThread->Connection->DisconnectSocket();
:
:     // Remove Client from the Clients ThreadList
:     TList*  pList = m_lstComModuel->LockList();
:     try {
:         pList->Remove( pdis ) ;
:     }
:     __finally {
:         m_lstComModuel->UnlockList();
:     }
:
:     // Free the Client object
:     if(pdis != NULL) {
:         delete pdis; pdis = NULL;
:     }       
:     AThread->Data   = NULL;
: }
: ////////////////////////////////////////////////////////////////////////////////
: // 서버에서 클라이언트로 데이터를 보낼때~
: // Timer를 사용해서 주기적으로 계속 보내고, 받습니다.
: void __fastcall TfrmMain::tmrDCTimerTimer(TObject *Sender)
: {
:     if( m_bDaqStarted == true) {
:         Application->ProcessMessages();
:         SendDaqStartToAll();
:     }
: }

죄송하게도 제가 사용을 ICS위주로 하다 보니 정확한 답변을 못 드립니다만 문제는 아시는대로 연결 문제입니다.

즉 상호 연결 체크 부분을 체크하시면 될겁니다.

만약 빠져있다면 추가하셔야합니다.

속성중에 prepared라는 부분이 있을것 같은데 체크해보시길~

+ -

관련 글 리스트
37932 indy에서 Connection Error처리??? 왕대박 1555 2004/11/08
37940     Re:indy에서 Connection Error처리??? 이채호 1335 2004/11/08
37944         Re:Re:indy에서 Connection Error처리??? 왕대박 1312 2004/11/08
37949             Re:Re:Re:indy에서 Connection Error처리??? 왕대박 1508 2004/11/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.