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
[52295] 장성호님 죄송한데 한가지만 더 여쭤보겠습니다. ^^
역삼골 [saonara] 1937 읽음    2008-02-15 19:50
저 같은 경우에는
동시 접속 100유저로 테스트 하고 있습니다.
즉, 동시에 100개 이상은 쓰래드가 생성되지 않는데요.

즉, 쓰래도 생성하고 죽이고 생성하고 죽이고 ...반복합니다.
ActiveThread를 봐도 평균 50개 정도입니다.

장성호님 팁에 있는데로라면
최대 2000건(팁 내용대로..) 이상은 쓰래드가 생성되지 않는건가요?

전 동시에 2000건 생성하는건 아닙니다.

항상 답변 고맙습니다. ^^

장성호 님이 쓰신 글 :
: 아래 팁을 참조하세요
:
: http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=186
:
: 그럼..
:
: 역삼골 님이 쓰신 글 :
: : 왜 4천건정도 접속 후에 접속이 않됩니다.
: : 서버 소켓을 클로즈하고 접속하면 다시 또 접속은 되지만 또 4천 후면 접속이 않되네요.
: : 왜 그런지 모르겠습니다.
: :
: : 테스트용 프로그램을 만들어서 계속 접속하고 해제하고 반복해서 돌리고 있습니다.
: :
: : //---------------------------------------------------------------------------
: : //Socket Thread Create Event
: : //---------------------------------------------------------------------------
: : void __fastcall Tfkmsmain::AuthServerSocketGetThread(TObject *Sender,
: :       TServerClientWinSocket *ClientSocket,
: :       TServerClientThread *&SocketThread)
: : {
: :     try
: :     {
: :     //TServerClientThread 를 생성
: :     SocketThread = new TServerSocketThread(false, ClientSocket);
: :     }
: :     //Excetion process
: :     __except(EXCEPTION_EXECUTE_HANDLER)
: :     {
: :     }
: : }
: :
: : //---------------------------------------------------------------------------
: : //Thread Start Event
: : //---------------------------------------------------------------------------
: : void __fastcall Tfkmsmain::AuthServerSocketThreadStart(TObject *Sender,
: :       TServerClientThread *Thread)
: : {
: :     //Thread Object, Socket handle Insert
: :     ThreadObjectCombo->Items->AddObject(IntToStr(Thread->ThreadID), Thread);
: :     Label1->Caption = IntToStr(StrToInt(Label1->Caption) + 1);
: : }
: :
: : //---------------------------------------------------------------------------
: : //Socket Thread End Event
: : //---------------------------------------------------------------------------
: : void __fastcall Tfkmsmain::AuthServerSocketThreadEnd(TObject *Sender,
: :       TServerClientThread *Thread)
: : {
: :     Thread->Terminate();
: :    
: :     //Close Socket Handle Search
: :     int nObjectIndex = ThreadObjectCombo->Items->IndexOf(IntToStr(Thread->ThreadID));
: :     if (nObjectIndex >= 0) ThreadObjectCombo->Items->Delete(nObjectIndex);
: :     Label2->Caption = IntToStr(StrToInt(Label2->Caption) + 2);
: : }
: :
: : void __fastcall TServerSocketThread::ClientExecute(void)
: : {
: :     TWinSocketStream *pStream = 0;
: :     BYTE bReceiveBuffer[65536] = {0x00,},
: :         bSendBuffer[65536] = {0x00,};
: :     long nReceiveBufferLen = 0,
: :         nSendBufferLen = 0;
: :     long nWaitingTime = 0;
: :     SYSTEM_WORK_INFO tSystemWorkInfo;
: :     int nWaitTimeOut = 60000;   //ms
: :     bool bFirstMsgRcv = true;
: :
: :     //Socket Handle save
: :     nSocketHandle = ClientSocket->SocketHandle;
: :
: :      //System Work Information Structure Reset
: :     memset((char*)&tSystemWorkInfo, 0x00, sizeof(SYSTEM_WORK_INFO));
: :
: : try
: : {
: :     //TWinSocketStream is a stream that provides services which allow
: :     //applications to read from or write to socket connections.
: :     pStream = new TWinSocketStream(ClientSocket, 60000);
: :
: :     //Waiting condition : not Time Out, not Terminate, not Socket Disconnect
: :     while(!Terminated && ClientSocket->Connected)                     //nWaitingTime < nSocketTimeOut &&
: :     {
: :         //Waits up to TimeOut milliseconds for the socket connection to be ready to transfer data.
: :         //Application->ProcessMessages();
: :         if(pStream->WaitForData(nWaitTimeOut))
: :         {
: :             //
: :             //Thread Blocking mode then read(void*,int) function use
: :             //
: :             //Reads up to Count bytes from the socket connection into Buffer.
: :             if (Terminated || !ClientSocket->Connected) break;
: :
: :             try
: :             {
: :             //Read Buffer
: :             memset(bReceiveBuffer, 0, sizeof(bReceiveBuffer));
: :             nReceiveBufferLen = pStream->Read(bReceiveBuffer, sizeof(bReceiveBuffer));
: :             }//try
: :             catch (Exception &E)
: :             {
: :             HandleException();
: :             }
: :             if (nReceiveBufferLen == 0) break;
: :             else
: :             {                               
: :                 //CHIP Process Request
: :                 nWaitingTime = 0;
: :                 memset(bSendBuffer, 0x00, sizeof(bSendBuffer));
: :                 memset(tSystemWorkInfo.cWorkResult, 0x00, sizeof(tSystemWorkInfo.cWorkResult));
: :                 epassclass->InferfaceMain(&tSystemWorkInfo, bReceiveBuffer, nReceiveBufferLen, bSendBuffer, &nSendBufferLen);
: :
: :                 //Client Socket Send Buffer
: :                 pStream->Write(bSendBuffer, nSendBufferLen);
: :             }
: :         }
: :        
: :         //Delay time
: :         Sleep(10);
: :     }
: :   
: :     //Client Socket Close
: :     ClientSocket->Close();
: :
: :     //Stream free
: :     delete pStream;
: : }
: : //Excetion process
: : __except(EXCEPTION_EXECUTE_HANDLER)
: : {
: :     //Client Socket Disconnect
: :     ClientSocket->Close();
: :
: :     //Stream free
: :      delete pStream;
: : }
: : }

+ -

관련 글 리스트
52293 TServerClientThread에서 4천건정도 접속하면 다음부터 접속이 안되네요...소스 좀 봐주세요...ㅠㅠ 역삼골 2388 2008/02/15
52298     Re:TServerClientThread에서 4천건정도 접속하면 다음부터 접속이 안되네요...소스 좀 봐주세요...ㅠㅠ 김호광 2250 2008/02/15
52294     Re:TServerClientThread에서 4천건정도 접속하면 다음부터 접속이 안되네요...소스 좀 봐주세요...ㅠㅠ 장성호 2822 2008/02/15
52295         장성호님 죄송한데 한가지만 더 여쭤보겠습니다. ^^ 역삼골 1937 2008/02/15
52296             클라이언트 테스트 프로그램에 문제가 있었네요..^^;; 역삼골 1983 2008/02/15
52299                 Re:클라이언트 테스트 프로그램에 문제가 있었네요..^^;; 김태선 2734 2008/02/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.