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
[6112] Re:TServerSocket threadBlocking모드에서.....(구조요청)
박지훈.임프 [cbuilder] 2981 읽음    2001-03-15 03:52
조경달 님이 쓰신 글 :
: OnGetThread 이벤트 함수에서 서비스를 위한 스레드를 생성해서 등록해야 하는데
: 도저히 방법을 모르겠습니다.
:
: 도움말에 있는 방식으로 다음과 같이 만들면 에러가 나는군요.
: 컨스트럭터 부분도 없는데 어찌 만들라는 얘기인지 도무지 알 수가 없군요.
:
:
: 고수님의 도움을 간절히 기다립니다.
:
: 도움말에 있는 내용...을 퍼왔습니다.
:
:
:
: class PACKAGE TMyServerThread : public ScktComp::TServerClientThread
:
: {
:   public
:     void __fastcall ClientExecute(void);
: }
:
: void __fastcall TMyServerThread::ClientExecute()
:
: {
:   while (!Terminated && ClientSocket->Connected) // make sure connection is active
:   {
:     try
:     {
:       TWinSocketStream *pStream = new TWinSocketStream(ClientSocket, 60000);
:       try
:       {
:         char buffer[10];
:         memset(buffer, 0, sizeof(buffer));
:         if (pStream->WaitForData(60000)) // give the client 60 seconds to start writing
:         {
:           if (pStream->Read(buffer, sizeof(buffer) == 0)
:
:             ClientSocket->Close(); // if can't read in 60 seconds, close the connection
:           // now process the request
:           ...
:         }
:         else
:           ClientSocket->Close();
:       }
:       __finally
:       {
:         delete pStream;
:       }
:     }
:     catch (...)
:     {
:      HandleException();
:     }
:   }
: }
:


임펠리테리입니다.

TServerClientThread의 생성자는 직접 구현해줘야 합니다. 내용은 아무것도 없어도 되구요. 다음과 같이 새 쓰레드 클래스를 선언합니다.

class PACKAGE TMyServerThread : public TServerClientThread
{
protected:
    void __fastcall ClientExecute(void);
public:
    __fastcall TMyServerThread(TServerClientWinSocket* ASocket, AnsiString DataFilePath);
};

그리고 생성자의 선언은 다음과 같이...

__fastcall TMyServerThread::TMyServerThread(TServerClientWinSocket* ASocket, AnsiString DataFilePath)
    : TServerClientThread(false, ASocket)
{
}

그럼 참고하시길...

+ -

관련 글 리스트
6102 TServerSocket threadBlocking모드에서.....(구조요청) 조경달 2548 2001/03/14
6112     Re:TServerSocket threadBlocking모드에서.....(구조요청) 박지훈.임프 2981 2001/03/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.