Q&A

  • TCP/IP Record형 송/수신에 대하여...
안녕하십니까

델초보입니다.

socket을 이용하여 Record형 자료를 송/수신 하려 하는데 잘 않되네요.

P.Data1은 송/수신 되나

P.Data2는 송/수신 되질 안네요...

어찌하면 되나요... ㅠ_ㅠ



송신

---------------------

procedure TSendCntl.Button9Click(Sender: TObject);

type

TPacketRec = Packed Record

Data1 : Array[0..9] of byte;

Data2 : Array[0..9] of byte;

end;



var

SendBuff : array[0..19] of byte;

P : TPacketRec;

begin

FillChar(P.Data1, SizeOf(P.Data1), $00);

FillChar(P.Data2, SizeOf(P.Data2), $00);

FillChar(SendBuff, SizeOf(SendBuff), $00);

P.Data1[0] := $FF;

P.Data1[1] := $FA;

P.Data1[2] := $FB;



P.Data2[0] := $AF;

P.Data2[1] := $AA;

P.Data2[2] := $AB;



Move(P, SendBuff, SizeOf(P));

ServerSocket1.Socket.Connections[0].SendBuf(SendBuff,SizeOf(SendBuff));

end;



수신

---------------------

procedure TReceCntl.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);

type

TPacketRec = Packed Record

Data1 : Array[0..9] of byte;

Data2 : Array[0..9] of byte;

end;



var

ReceBuff : array[0..19] of byte;

P : TPacketRec;

i : Integer;

szString1, szString2 : String;

begin

FillChar(P.Data1, SizeOf(P.Data1), $00);

FillChar(P.Data2, SizeOf(P.Data2), $00);

FillChar(SendBuff, SizeOf(SendBuff), $00);

Socket.ReceiveBuf(ReceBuff, Sizeof(ReceBuff));



Move(ReceBuff, P, SizeOf(ReceBuff));

for i := 0 To Size(ReceBuf)-1 do

begin

szString1 := szString1+'$'+IntToStr(P.Data1[i],2);

szString2 := szString2+'$'+IntToStr(P.Data2[i],2);

end;

end;



0  COMMENTS