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
[48687] Re:Re:Re:NMUDP에서 ReadStream 문의
금목암 [iconms1] 1467 읽음    2007-03-30 14:08
김명섭 님이 쓰신 글 :
: 아래와 같이 코딩했을때 수신받은 데이터 Byte수를  알 수 있는데요.
:
: 수신받은 데이터를 Memo1에 출력하려면 어떻게 하면 될까요?
:
: void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
:       int NumberBytes, AnsiString FromIP, int Port)
: {
:   FromIP = Edit2->Text;
:   Port = StrToIntDef(Edit3->Text,50006);
:
:   AnsiString C;
:   TMemoryStream *MyStream = new TMemoryStream();
:   NMUDP1->ReadStream(MyStream);
:   C.SetLength(NumberBytes);
:   MyStream->Read(&C[1], NumberBytes);
:   Memo1->Lines->Add(C+": received "+IntToStr(NumberBytes)+" bytes from "+FromIP+" on port "+IntToStr(Port));
:
: 금목암 님이 쓰신 글 :
: : 김명섭 님이 쓰신 글 :
: : : {
: : :   AnsiString C;
: : :   TMemoryStream *MyStream = new TMemoryStream();
: : :   NMUDP1->ReadStream(MyStream);
: : :   C.SetLength(NumberBytes);
: : :   MyStream->Read(&C[1], NumberBytes);
: : :   Memo1->Lines->Add(C+": received "+IntToStr(NumberBytes)+" bytes from "+FromIP+" on port "+IntToStr(Port));
: : : }
: : :
: : :
: : : 질문1.
: : : ReadBuffer or ReadStream으로 어느것을 하면 좋을까요?
: : :
: : : 질문2.
: : : 아래와 같은 데이터를 받을려고 합니다.
: : :
: : :        char sendData[12];
: : :              sendData[0]=0x81;
: : :              sendData[1]=0x21;
: : :              sendData[2]=0x00;
: : :              sendData[3]=0x00;
: : :              sendData[4]=0x41;
: : :              sendData[5]=0x10;
: : :              sendData[6]=0x00;
: : :              sendData[7]=0x0C;
: : :              sendData[8]=0x30;
: : :              sendData[9]=0x31;
: : :              sendData[10]=0x33;
: : :              sendData[11]=0x38;
: : :
: : :         MyStream->Write(sendData,9);
: : :         NMUDP1->SendStream(MyStream);
: : :
: : : 아래와 같이 출력됩니다.
: : : 31 31 30 30 43 30 31 33 38
: : [답변]
: : idudpserver1udp(read....)
: : {
: : char *cabuffer;
: : string stbuffer,stsum;
: : if(AData->Size==0)return;
: : cabuffer=(char *)malloc(AData->size+1);
: : AData->Read(cabuffer,AData->size);
: : cabuffer=[AData->Size]=0;
: : Memo1->Lines->Add((String)caBuffer)  ;
        Memo1->Lines->Add(ss1);
하세요
: : 이런식으로 udp서버의 이벤트에서 받아보세요
: :
: :
: :
: :
: : }
: : :
: : : 원하는 결과는 아래와 같습니다.
: : : 81 21 00 00 41 10 00 0C 30 31 33 38
: : :
: : : 고수님들의 답변부탁드립니다 ^^/

+ -

관련 글 리스트
48675 NMUDP에서 ReadStream 문의 김명섭 1193 2007/03/30
48680     Re:NMUDP에서 ReadStream 문의 금목암 1062 2007/03/30
48686         Re:Re:NMUDP에서 ReadStream 문의 김명섭 1073 2007/03/30
48687             Re:Re:Re:NMUDP에서 ReadStream 문의 금목암 1467 2007/03/30
48688                 Re:Re:Re:Re:NMUDP에서 ReadStream 문의 김명섭 1078 2007/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.