안녕하세여?
SendBuffer : array of Byte;
SendBuffer2 : array[0..3] of Byte;
이렇게 있을때..
SetLength( SendBuffer , 4 );
for i := 0 to 3 do
begin
SendBuffer[i] := i + 65;
SendBuffer2[i] := i + 65;
end;
Socket.SendBuffer( SendBuffer , Length(SendBuffer);
Socket.SendBuffer( SendBuffer2 , Length(SendBuffer2);
이렇게 자료를 보냈을경우에.. 받는 쪽이 하드웨어인데..
UChar배열로 받습니다.
동적으로 배열을 잡고 보내면.. 데이터가 바이트수는 일치하는데.
깨지네요.
아래에 있는 것은 정확이 데이터가 가구요..
동적배열과 정적배열이 어떤 차이가 있는지 궁금하구요..
또. SendBuffer[0]로 파람을 넘겼을때. 포인터가 SendBuffer랑 어떻게
차이가 있는지 해서 도움을 구합니다..
그럼.. ( 또.. 관련 자료를 어디서 읽어 볼수 있는지 가르쳐 주시면.. ㅠ.ㅠ)
그럼 고수님들의 도움을....
동적배열과 정적배열은 완전히 다른구조의 데이터형입니다. 동적배열은 string, interface처럼 참조카운트와 범위(scope)에 의해 메모리 할당/해제가 자동으로 이루어지는 데이터형입니다.
데이터의 크기가 일정하지 않다면 GetMem을 이용해서 메모리할당을 해서 사용하세요...
var
SendBuffer: PByteArray; // PByteArray = pointer to array[0..32767] of Byte;
I: Integer;
begin
GetMem(SendBuffer, 크기);
for I := 0 to 3 do
SendBuffer^[I] := i + 65;
......
Socket.SendBuffer(SendBuffer^ , 크기);
......
FreeMem(Sendbuffer, 크기);
end;
^^ 항상 즐코하세요...
정종구 wrote:
> 안녕하세여?
>
> SendBuffer : array of Byte;
> SendBuffer2 : array[0..3] of Byte;
>
> 이렇게 있을때..
>
> SetLength( SendBuffer , 4 );
>
> for i := 0 to 3 do
> begin
> SendBuffer[i] := i + 65;
> SendBuffer2[i] := i + 65;
> end;
>
>
> Socket.SendBuffer( SendBuffer , Length(SendBuffer);
> Socket.SendBuffer( SendBuffer2 , Length(SendBuffer2);
>
> 이렇게 자료를 보냈을경우에.. 받는 쪽이 하드웨어인데..
> UChar배열로 받습니다.
> 동적으로 배열을 잡고 보내면.. 데이터가 바이트수는 일치하는데.
> 깨지네요.
> 아래에 있는 것은 정확이 데이터가 가구요..
>
> 동적배열과 정적배열이 어떤 차이가 있는지 궁금하구요..
> 또. SendBuffer[0]로 파람을 넘겼을때. 포인터가 SendBuffer랑 어떻게
> 차이가 있는지 해서 도움을 구합니다..
> 그럼.. ( 또.. 관련 자료를 어디서 읽어 볼수 있는지 가르쳐 주시면.. ㅠ.ㅠ)
>
> 그럼 고수님들의 도움을....