Q&A

  • tcp로 record형 데이터를 주고 받을때....
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;



이렇게 되어있는데 어느 부분에서 잘못 되었는지를 모르겠습니다.

한번 살펴보시고, 아시는 분 답변좀 주세요....

그럼.. 오늘도 좋은 하루 되세요...



0  COMMENTS