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형 데이터의 의미가 뭔지 설명 부탁드립니다.
|