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
[59710] [질문] Indy 8.0에서 데이터 송 수신하기.
Kenzuro [kenzuro83] 1508 읽음    2010-01-11 14:55
안녕하세요 초보자 Kenzuro 입니다.  이렇게 물어보기 죄송스러우나,

검색 내공이 부족해서인지 데이터 송 수신법을 찾을 수 없어 질문 남김니다.. 많은 관심 부탁드려요 ^^;

질문 내용은

제가 기본 소켓으로 TCP 연결을 해서 데이터를 송 수신 하는 것은 하고 있는데요.. 이게 아무래도

문제가 되는 듯 싶어 일반 소켓에서 Indy8.0으로 바꿀려고 하고 있습니다.

  IdTCPClient1->Host = "IP주소";
  IdTCPClient1->Port = 포트번호;
  IdTCPClient1->OnWork = IdTCPClient1Work;
  IdTCPClient1->Connect();
  if(IdTCPClient1->Connected() == true){
    MessageBoxA(NULL, "IndyClient Connect", "Notice", MB_OK);
    Sleep(5000);
  }


이렇게 연결 하고

  AnsiString SendData;
  TDateTime dTime = Now();
  SendData.printf("\x02tm%s\x0d",Now().FormatString("hh:nn:ss"));
  if(IdTCPClient1->Connected() == true){
    for(int k = 0; k < SendData.Length(); k++){
      AnsiString Senddata = String( ((char *)SendData.data())[k]);
      IdTCPClient1->Write(Senddata);
    }
    //IdTCPClient1->WriteLn(SendData);
  }


위와 같이 메세지를 보낼려고 했습니다. for문이 들어간 방법도 해보고 밑의 주석이 들어간 방법도 해봤습니다..

일단 첫번째 질문은 이게 맞게 동작하는지 입니다.. 장비에 제대로 명령어가 들어가고 있는건지 궁금합니다.

그리고 정보를 받는 부분은

AnsiString Data = IdTCPClient1->ReadLn(wmRead);
  Form1->Memo1->Lines->Add(Data);


OnWork에서 이런식으로 받아왔는데요 아무런 반응도 없네요..

여기서 두번째 질문은 장비에서 메세지를 받을 때는 어떻게 해야 하냐는 것입니다.

물론 장비는 살아 있고요 일반적인 TSocket으로 하면 제대로 돌아갑니다.

사용자 환경은 Builder 6이고요 Indy8.0에서 하고 있습니다.

많은 관심 부탁드립니다.~!

+ -

관련 글 리스트
59710 [질문] Indy 8.0에서 데이터 송 수신하기. Kenzuro 1508 2010/01/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.