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
[65573] Re:Re:Re:Re:tcp client 데이타 전송 문제
초보남 [] 2058 읽음    2011-11-24 10:28
답변 정말 감사합니다.~
c++ 빌더 2009 교재가 있는 것도 아니고... 정말이지 힘이 부치네요--
일단 알려주신 수신측 코드는 아래대로 구현하였습니다.
스레드를 이용하여 주기적 check를 하는데 뭔가 수신된 것이 확인되었을때에만 ReadBytes를 해야할 것 같은데요.. 아래 코드 그냥 적용하니 무한에 빠지네요~ 거의 다 온것 같은데...

////////////////////
char RxData[200];
char Tcp_circ_getc()
{
    int RxLen=200, i;
    TBytes buf;
    buf.set_length(RxLen);

    UartRecvFlag&=~CMD_RECEIVED;
    if(Form1->IdTCPClient1->Connected() == true){
  //===========>if(수신된 데이타가 있는지 검사){
           Form1->IdTCPClient1->Socket->ReadBytes(buf, RxLen, false);
                 memcpy(RxData, &buf[0], RxLen);
                            return 1;

                        }

    }
               return 0;
}

DWORD ComThread (LPDWORD lpdwParam)
{
    while (1){
          bTemp=Tcp_circ_getc();
             :
             :
             :
    }
}
/////////////////////

nan 님이 쓰신 글 :
: 아래와 같이 해보시면 될것 같지만 초보자에게는 Indy 보다는 Socket API 쪽을 먼저 학습하시길 권합니다.
:
:
:      char RxData[100];
:      int RxLen = 100;
:  
:      TBytes buf;
:      buf.set_length( RxLen );
:      IdTCPClient1->Socket->ReadBytes( buf, RxLen, false );
:      memcpy( RxData, &buf[0], RxLen );
: 

:
: 초보남 님이 쓰신 글 :
: : 한가지만 더 부탁드립니다.
: : client에서 server로 전송은 nan님께서 조언해 주신대로 하니 잘 되었습니다.
: : 이번에는 반대로 수신이 문제인데 버퍼에 수신하는 것도 도와주시면 안될까요~~
: :
: : nan 님이 쓰신 글 :
: : :
: : :     char TxData[100];
: : :     int TxLen = 100;
: : : 
: : :     TBytes buf;
: : :     buf.set_length( TxLen );
: : :     memcpy( &buf[0], TxData, TxLen );
: : :     IdTCPClient1->Socket->Write( buf );
: : : 

: : : 요렇게 하면 버퍼를 송신할수 있을것 같습니다. 인디가 버퍼를 보낼때 좀 지롤같죠..
: : :
: : : 초보남 님이 쓰신 글 :
: : : : 현재 빌더 2009, INDY TCP CLIENT 기능을 이용하여 SERVER으로 데이터 송/수신 구현중입니다.
: : : : 헌데 서버로 데이터 전송이 제대로 되지 않아서...
: : : :
: : : : TxData[100] => 보낼 hex 데이타
: : : : TxLen => 보낼 데이타 길이
: : : :
: : : : 위 데이터를 전송하기 위해서 어떤 함수를 사용해야 하는지요...
: : : : IdTCPClient1->Socket->???
: : : :
: : : : 그냥 스트링 전송은 잘됩니다.(IdTCPClient1->Socket->WriteLn("abcd");
: : : : 하지만 원하는 것은 보낼 길이(TxLen )가 정해진 hex 데이타(TxData[??] 이거든요..
: : : :
: : : : 추가로 전송 데이타 형식이 0x13을 보낸다면 실제로 서버 수신은 0x31 0x33 0x0d 0x0a 이렇게 수신되는것 같은데
: : : : 그냥 0x13 이렇게 리얼하게 전송은 안되는지요... 초보라 너무 모릅니다..

+ -

관련 글 리스트
65550 tcp client 데이타 전송 문제 초보남 1294 2011/11/22
65554     Re:tcp client 데이타 전송 문제 nan 1362 2011/11/23
65559         Re:Re:tcp client 데이타 전송 문제 초보남 1828 2011/11/23
65570             Re:Re:Re:tcp client 데이타 전송 문제 nan 1322 2011/11/24
65573                 Re:Re:Re:Re:tcp client 데이타 전송 문제 초보남 2058 2011/11/24
65557         Re:Re:tcp client 데이타 전송 문제 초보남 1250 2011/11/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.