Q&A

  • [질문] 인디 클라이언트로 데이타 전송시..
인디 서버에서받은 데이타를 그대로 다른곳으로 보냅니다
그런데 들어오는 데이타가 가변이기때문에
길이를 구해서 SetLength 를 이용해서 동적으로 배열을 생성하는데
다른쪽 서버에서받을때는 쓰레기 값이 넘어갑니다

Send_Buffer  : Array Of Byte;
SetLength(Send_Buffer,61);
IdTCPClient1.WriteBuffer(Send_Buffer, SizeOf(Send_Buffer), true)

이렇게 하면 이상한 값이 넘어가고

Send_Buffer  : Array [0..60] Of Byte;
IdTCPClient1.WriteBuffer(Send_Buffer, SizeOf(Send_Buffer), true)

이렇게 하면 제대로된 값이 넘어갑니다..

원인을 알고 싶습니다

감사합니다
2  COMMENTS
  • Profile
    최용일 2008.12.19 02:22
    동적배열은 포인터형입니다. 때문에 SizeOf도 포인터주소의 크기인 4를 리턴하죠.
    아래와 같이 해서 보내세요.
    IdTCPClient1.WriteBuffer(Send_Buffer[0], Length(Send_Buffer), true)
  • Profile
    윤박사 2008.12.19 03:12
    최용일님 감사합니다
    그대로 하니까 잘 전송됩니다