현재 델파이7, Indy9으로 네트워크 프로그램하나 작성중인데요.
서버에서 레코드안의 정수형 변수를 htonl로 변환하여 전송하고
클라이언트에서 수신한 레코드를 받아서 ntohl로 변환해도
처음 한, 두번은 값이 잘 전달 되다가,
그 이후부터 빈번히 깨져서 쓰래기값이 들어와 있네요...
Ex)
type
TMyRec = Packed Record
FIndex1:Integer;
FIndex2:Integer;
end;
{이 레코드를 패킷으로 보낼때}
{서버에서}
Procedure MainFormSendRec;
var
MyRec:TMyRec;
begin
MyRec.FIndex1 := 123;
MyRec.FIndex2 := 456;
MyRec.FIndex1 := htonl(MyRec.FIndex1);
MyRec.FIndex2 := htonl(MyRec.FIndex2);
AConnection.WriteBuffer(MyRec);
end;
{클라이언트에서}
Procedure MainFormRecvRec;
var
MyRec:TMyRec;
begin
Client.ReadBuffer(MyRec);
MyRec.FIndex1 := ntohl(MyRec.FIndex1);
MyRec.FIndex2 := ntohl(MyRec.FIndex2);
end;
{}
혹시 아시는분 계신다면 답변 부탁드립니다.