안녕하십니까
델초보입니다.
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;