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
[48686] Re:Re:NMUDP에서 ReadStream 문의
김명섭 [myongsubi] 1073 읽음    2007-03-30 14:00
아래와 같이 코딩했을때 수신받은 데이터 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;
:
: 이런식으로 udp서버의 이벤트에서 받아보세요
:
:
:
:
: }
: :
: : 원하는 결과는 아래와 같습니다.
: : 81 21 00 00 41 10 00 0C 30 31 33 38
: :
: : 고수님들의 답변부탁드립니다 ^^/

+ -

관련 글 리스트
48675 NMUDP에서 ReadStream 문의 김명섭 1194 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 문의 금목암 1468 2007/03/30
48688                 Re:Re:Re:Re:NMUDP에서 ReadStream 문의 김명섭 1078 2007/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.