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
[5622] Re:[질문]서버에서 통신이 끊겼을때 5분단위로 Reconnection하는 로직에 대한 질문
제라툴 [] 2875 읽음    2001-02-21 18:30
이영수 님이 쓰신 글 :
: 크라이언트에의 Disconnect Event Handler에 Disconnect된 시간을 저장합니다.
: 글구 스레드를 생성하고 실행합니다.
:
:    void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
:          TCustomWinSocket *Socket)
:    {
:        DisConnectTime = GetTickCount();  // DisConnect된 시간을 구한다.
:
:        if(ReConnect == NULL)
:            ReConnect = new TReConnect(false); //Reconnect 스레드를 생성과 동시에 실행 한다.
:    }
:
:
: 스레드의 실행모듈에서는 현재 시간을 구해 Disconnec된지 5분이 지났나를 체크합니다.
: 글구 만약 5분이 지났다면 다시 Connect를 시도 합니다.
: Form1->GetDisConnectTime(); 아까 Disconnect될때 Disconnect된 시간을 가지고 있습니다.
:    void __fastcall TReConnect::Execute()
:    {
:        int EndTime;
:        while(!Terminated)
:        {
:            EndTime = GetTickCount();
:            if(((EndTime - Form1->GetDisConnectTime())/1000) > 300)
:            {
:                Form1->InitialCom();
:                Form1->SetDisConnectTime(EndTime);
:            }
:            Sleep(0);
:        }
:    }
:
:
: 소켓 초기화 함수
: void __fastcall TForm1::InitialCom()
: {
:    ClientSocket1->Close();
:    ClientSocket1->Address = xxx.xxx.xxx.xxx;
:    ClientSocket1->Port    = xxxx;
:    ClientSocket1->Open();
:
: }
:
: 이렇게 구현을 했는데...Reconnect가 잘 구현이 안되네요.. 됐다 안됐다 하니..영..~~~
: 종잡을 수가 없습니다. 어떤 부분이 잘못된는지.. 함 봐주세요
:
:

제라툴입니다.

제 짧은 소견으로는 Terminated것이 잘못 된거 같습니다.

Terminated가 무엇을 하는 flag인지 확실이 모르겠지만 위의 소스 상에서.. 보면 

Terminated가 소켓의 연결이 끊어져 있는지 아니면 정상인지를 체크하는 것같은데....

소켓을 제연결후 Terminated를 다시 연결상태(true)로 세팅이 안되는것 같습니다..

그래서 쓰레드가 종료되지 않아 발생하는 오류 인듯싶내영.. ㅡㅡ;

어디까지나 제생각입니다... 다른 고수님들의 답변을 기다려 보싶시오.. ^^

---- 아름다운 청년 제라툴 ----

+ -

관련 글 리스트
5614 [질문]서버에서 통신이 끊겼을때 5분단위로 Reconnection하는 로직에 대한 질문 이영수 2598 2001/02/21
5624     Re:[질문]서버에서 통신이 끊겼을때 5분단위로 Reconnection하는 로직에 대한 질문 Orun 2835 2001/02/21
5622     Re:[질문]서버에서 통신이 끊겼을때 5분단위로 Reconnection하는 로직에 대한 질문 제라툴 2875 2001/02/21
5623         Re:Re:[질문]서버에서 통신이 끊겼을때 5분단위로 Reconnection하는 로직에 대한 질문 이영수 2514 2001/02/21
5625             Re:Re:Re:[질문]서버에서 통신이 끊겼을때 5분단위로 Reconnection하는 로직에 대한 질문 Orun 2437 2001/02/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.