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
[75841] Re:Re:Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우...
김시환 [godson2] 1182 읽음    2020-04-24 11:27
이 방법은 저도 해 봤는데 안됩니다.
프로세스 자체가 이 무한 루프에 갇혀 있는 형국이라 무한 루프를 나가기 전에는 응답을 못하네요..

물론 메인 폼에 변수를 하나 설정하고 TCP Server에서 응답을 하면서 변수만 바꿔 주고 메인 폼에 타이머 같은거 하나 두어서 주기적으로 해당 변수를 체크하고 있다가 LOOP 함수 동작에 대해 처리하면 동작은 되겠지만 아무래도 뭔가 찝찝한 코딩처럼 느껴져서 문의를 드립니다.

방법이 정 없다면 어쩔수 없이 사용해야 겠지만 뭔가 좋은 방법이 있으면 좋겠습니다.


정성훈.해미 님이 쓰신 글 :
: 루프안에 Application->ProcessMessage() 를 사용해서 처리하는 것이
: 제일 간단한 방법일 것 같습니다.
:
: void __fastcall TForm1::LOOP()
: {
:     while(true)
:     {
:        if(m_UserStop == true) break ;
:        Sleep(100) ;
:        Application->ProcessMessage(); // 추가
:     }
: }
:
: 김시환 님이 쓰신 글 :
: : Indy TCP Server 를 사용하여 프로그램을 하고 있습니다.
: : 외부 클라이언트에서 특정한 동작 요청이 있을 경우 서버 프로그램은 무한 루프 함수를 실행하게 됩니다.
: :
: : 그런데 이렇게 될 경우 이 서버가 다른 클라이언트 요청은 정상적으로 수행하는데 이 무한루프 함수를 요청한 클라이언트의 다른 요청은 이 무한루프를 빠져 나가기 전에는 수행을 못합니다.
: :
: : 아래 코드의 상황 입니다.
: :
: : void __fastcall TForm1::TCPServerExecute(TIdContext *AContext)
: : {
: :     TIdBytes ABuffer;
: :     AContext->Connection->IOHandler->ReadBytes(ABuffer, -1, false);
: :     int action = Parsing(ABuffer) ;
: :
: :     if( action == 1) LOOP() ;
: : }
: :
: : void __fastcall TForm1::LOOP()
: : {
: :     while(true)
: :     {
: :        if(m_UserStop == true) break ;
: :        Sleep(100) ;
: :     }
: : }
: :
: : 결국 클라이언트의 요청이 완전히 동작 완료하기 전에는 동일한 클라이언트의 다른 요청에는 응답을 하지 못한다는 의미인데 이런경우 어떻게 해결하는 것이 좋을까요??
: : Callback 같은 걸로 해결하는 방법이 있을까요?

+ -

관련 글 리스트
75838 Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우... 김시환 1294 2020/04/24
75851     Re:Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우... 처음과같이 1228 2020/05/13
75839     Re:Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우... 정성훈.해미 1188 2020/04/24
75841         Re:Re:Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우... 김시환 1182 2020/04/24
75845             Re:Re:Re:Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우... 빌더(TWx) 1259 2020/05/08
75846                 Re:Re:Re:Re:Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우... 금목암 1071 2020/05/10
75849                     Re:Re:Re:Re:Re:Indy TCP Server 에서 무한 루프를 동작 함수를 호출하는 경우... 김시환 1121 2020/05/11
75847                     Re:C++20 CoRoutine 테크닉 빌더(TWx) 1441 2020/05/10
75848                         Re:Re:C++20 CoRoutine 테크닉 김시환 1216 2020/05/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.