선언부입니다.
Type
TMyREC = Record
A : String;
B : String;
C : String;
End;
TMyRECArray = Array Of TMyREC;
서버측입니다.
procedure TFormServer.IdTCPServer1Execute(AContext: TIdContext);
Var
MemoryStream : TMemoryStream;
MyRECArray: TMyRECArray;
Begin
SetLength(MyRECArray, 3);
MyRECArray[0].A := 'A0';
MyRECArray[0].B := 'B0';
MyRECArray[0].C := 'C0';
MyRECArray[1].A := 'A1';
MyRECArray[1].B := 'B1';
MyRECArray[1].C := 'C1';
MyRECArray[2].A := 'A2';
MyRECArray[2].B := 'B2';
MyRECArray[2].C := 'C2';
MemoryStream := TMemoryStream.Create;
MemoryStream.Write( MyRECArray[0], SizeOf(MyRECArray[0]) );
MemoryStream.Write( MyRECArray[1], SizeOf(MyRECArray[1]) );
MemoryStream.Write( MyRECArray[2], SizeOf(MyRECArray[2]) );
AContext.Connection.IOHandler.Write(MemoryStream);
MemoryStream.Free;
End;
다음은 클라이언트측입니다.
VAR
MemoryStream : TMemoryStream;
MyRECArray : TMyRECArray;
Begin
....
....
....
MemoryStream := TMemoryStream.Create;
IdTCPClient.IOHandler.ReadStream(MemoryStream);
MemoryStream.Position := 0;
I := -1;
while MemoryStream.Position < MemoryStream.Size do
begin
I := I + 1;
SetLength(MyRECArray, I);
MemoryStream.Read( MyRECArray[I], SizeOf(MyRECArray[I]) );
end;
MemoryStream.Free;
....
End;
이렇게 하면 MyRECArray가 3개의 배열로 생성되기는 하는데 값이 전부 ''입니다.
어디를 수정해야 하나요?
|