제가 밑에처럼 레코드를 만들어서 소켓연결하고
읽어오는데 fData에데이타값이 전혀 들어가지 않네요..
제가 배열을 동적배열을 잘못써서 그런것 같은데
아무리 생각을 해보다 어떻게 해야 할지 모르겠습니다.
레코드 부분을 Array[0..1023] of Char로 잡으면
값이 잘 들어오거든요..
이유에 대해서 답변좀 주세요.. 흑흑..
그리고 여기서 동적배열로 잡는거랑 무슨 차이인가요?
TDataRtn = record
data : ^Char;
end;//Recive Message
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
S : Integer;
strTemp : array of char;
begin
iReceiveLength :=ClientSocket1.Socket.ReceiveLength;
intLength := intLength-ClientSocket1.Socket.ReceiveLength;
ZeroMemory(@fData,1024);
iReceiveLength:= ClientSocket1.Socket.ReceiveBuf(fData ,1024);
end;
fData가 TDataRtn형인가요? 그럼 Data필드가 포인터형이니까, 포인터를 넘겨주는게 아니라 그 값을 넘겨주시고 받아야 할거 같은데요...
iReceiveLength:= ClientSocket1.Socket.ReceiveBuf(fData.Data^ ,1024);
^^ 항상 즐코하세요...