Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15615] IdTCP로 레코드를 전송하려 하는데 데이터를 읽지 못합니다.
첫눈 [hadugo] 1719 읽음    2015-12-21 16:51
  TMyREC = Record
    Val1 : int64;
    Val2 : int64;
    Val3 : integer;
  End;



이렇게 선언되어 있구요.



서버에서는
procedure TFormServer.IdTCPServer1Execute(AContext: TIdContext);
VAR
    MYREC : TMYREC ;
    MemoryStream : TMemoryStream;
    .....
    .....
Begin
    .....
    .....
    MemoryStream := TMemoryStream.Create;
    MemoryStream.Write(MyREC, SizeOf(MyREC));
    MemoryStream.Position := 0;
    AContext.Connection.IOHandler.Write(MemoryStream, MemoryStream.Size, True);
    MemoryStream.Free;
    MemoryStream := Nil;
    ....
    ....
End;



클라이언트에서는
Var
  IdTCPClient : TIdTCPClient;
  MemoryStream : TMemoryStream;
  MyREC : TMyREC,;
Begin
  IdTCPClient := TIdTCPClient.Create(nil);
  .....
  .....
  MemoryStream := TMemoryStream.Create;
  IdTCPClient.IOHandler.ReadStream(MemoryStream, -1, False);
  MemoryStream.Read(MyREC, SizeOf(MyREC));
  MemoryStream.Free;
  MemoryStream := Nil;
  ....
  ....
  IdTCPClient.Free;
  IdTCPClient := nil;
End

이렇게 처리했습니다.

하지만 MyREC에는 전부 0만 들어가 있습니다.

어떻게 해야 할지 모르겠습니다.




그리고 한가지 질문 더 드립니다.
    AContext.Connection.IOHandler.Write(MemoryStream, MemoryStream.Size, True);

  IdTCPClient.IOHandler.ReadStream(MemoryStream, -1, False);
의 마지막 옵션에 Boolean형 데이터의 의미가 뭔지 설명 부탁드립니다.

+ -

관련 글 리스트
15615 IdTCP로 레코드를 전송하려 하는데 데이터를 읽지 못합니다. 첫눈 1719 2015/12/21
15616     Re:IdTCP로 레코드를 전송하려 하는데 데이터를 읽지 못합니다. kylix 1782 2015/12/22
15617         Re:Re:IdTCP로 레코드를 전송하려 하는데 데이터를 읽지 못합니다. 첫눈 1873 2015/12/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.