indy tcp로 record형을 주고 받을때 막히는 부분이 있어서 이렇게 글을 올립니다.
record형의 데이터를 stream에 넣은 후에 주고 받을려고 하는데 자꾸 에러가 납니다.
// record 선언
type Tmyrecord = packed record
data : array [0..9,0..9] of double;
end;
// server 부분
send_data : TMyrecord;
.
// tcpserver의 excute event...
var
fdata : TMemoryStream;
begin
with Athread.connection do
begin
try
FData := TMemoryStream.Create;
FData.Write(send_data,sizeof(send_data));
OpenWriteBuffer;
WriteStream(Fdata);
CloseWriteBuffer;
finally
fdata.free;
end;
end;
//클라이언트...데이터를 받는부분....
read_data : TMyrecord
var
fdata : TMemoryStream;
begin
with IdTcpClient1 do
begin
try
fdata := TMemoryStream.Create;
readStream(fdata);
fdata.read(read_data,sizeof(read_data));
//데이터를 표시하는 부분...
read_data.data......
finally
fdata.free;
end;
end;
end;
이렇게 되어있는데 어느 부분에서 잘못 되었는지를 모르겠습니다.
한번 살펴보시고, 아시는 분 답변좀 주세요....
그럼.. 오늘도 좋은 하루 되세요...