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
[45018] Re:Re:답변해 주셔서 감사합니다.^^ 복 많이 받으세요.
해롱해롱 [] 1225 읽음    2006-05-24 15:39
Julien 님이 쓰신 글 :
: 해롱해롱 님이 쓰신 글 :
: : 이번에 회사에서 진행하는 프로젝트에 TIdTCPServer를 사용 하려고 합니다.
: : 메뉴얼을 보니까 이게 멀티 스레드로 클라이언트를 붙일 수 있는것 같은데 그것만 봐서는
: : 어떻게 쓰는것인지 감이 잘 잡히지 않습니다. 사용해 보신분 있으시면 좀 알려주세요..^^
:
: 두 가지 방법으로 할 수 있습니다.
: 1. CommandHandlerEnabled 를 true 로 했을 때
:
: CommandHandler를 정의해 주면 됩니다.
: CommandHandlers 옆에 있는 ... 버튼을 누르시고 거기에 필요한 커맨드와 응답을 정의해 주면 됩니다.
: 예를 들어 time 이라는 command 를 하나 설정하고 OnCommand 에
:
: ASender->Thread->Connection->WriteLn(Now());
:
: 라고 넣어준 후 프로그램을 실행하면 간단한 time 서버 하나를 만들게 됩니다.
: 클라이언트를 따로 만들지 않고 테스트를 하려면 명령프롬프트를 띄우신 후
:
: telnet localhost PORT
:
: 로 접속한 후 time 이라고 입력하면 현재 시간을 출력해 줄 겁니다.
:
: 2. CommandHandlerEnabled 를 false로 했을 때
:
: false 일 때는 OnExecute 에 필요한 코드를 넣으시면 됩니다. onExecute 는 쓰레드가 실행되는 부분입니다.
: 이 부분에 처리하고자 하는 코드를 넣으면 됩니다.
: 예를 들면
:
: String msg = AThread->Connection->ReadLn();
: if(rcv.UppderCase() == "TIME")
:    msg = Now();
: AThread->Connection->WriteLn(msg);
:
: 이런 식으로 작성하면 됩니다. 이 코드는 time 명령이 들어오면 현재 시간을 리턴해주고 그 외의 입력에 대해서는 그대로 에코를 하도록 만든 겁니다.
:
: 주의사항은 보통 쓰레드 만들 때 execute 함수 내부에 무한루프를 돌리도록 만드는데 indy 에서는 그렇게 하면 안됩니다.(절대 안된다는 건 아닙니다.) 쓰레드가 살아 있는 동안 이 함수를 계속해서 실행합니다.

+ -

관련 글 리스트
45001 Indy 에서 TIdTCPServer 를 사용하려고 합니다. 간단한 사용법좀 부탁 드립니다. 해롱해롱 1593 2006/05/23
45015     Re:Indy 에서 TIdTCPServer 를 사용하려고 합니다. 간단한 사용법좀 부탁 드립니다. Julien 2088 2006/05/24
45018         Re:Re:답변해 주셔서 감사합니다.^^ 복 많이 받으세요. 해롱해롱 1225 2006/05/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.