MemoryStream.Position := 0;
MemoryStream.Read(MyREC, SizeOf(MyREC));
첫눈 님이 쓰신 글 :
: 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형 데이터의 의미가 뭔지 설명 부탁드립니다.
:
|