civilian님 저번의 답글로 문제가 되는 것들이 모두 풀렸습니다.
이번 물론 답글도 감사드리구요.
매번 빠른 답변에 깊은 감사드립니다.
civilian 님이 쓰신 글 :
: SetLength() 함수룰 사용하세요
:
: 김수정 님이 쓰신 글 :
: : TUDP소켓을 통해 다수의 피시에 파일을 전송하려 하는데
: : 여러가지 문제로 고생하다 civilian님의 덕분에 어느정도 해결이 되었습니다.
: : civilian님 다시 한 번 감사드립니다.
: :
: : 이번엔 TBytes타입 때문에 고생하고 있는데요.
: :
: : TUDP소켓으로는 대용량파일을 한번에 전송할 수 없어
: : 파일을 MemoryStream에 담아 8192바이트씩 나누어 전송합니다.
: :
: : Indy10을 사용하고 있어 IdUDPClient1.SendBuffer(AData) 이렇게 데이터를 전송할때
: : AData가 TBytes타입입니다.
: :
: : 그런데 8192바이트씩 나누어 전송하다가 파일의 끝부분이 되면
: : 나머지부분이 8192바이트가 되지 않기 때문에 나머지 부분만 전송해야 하는데요.
: :
: : 문제는 TBytes타입은 용량이 모자라면 자동으로 늘려주지만
: : 용량이 작아지는 경우에는 자동으로 줄여주지 않기 때문에
: : 파일의 끝부분을 저장하고 남는 부분에는
: : 이전에 담아 두었던 값들이 그대로 남아 전송이 됩니다.
: :
: : 그래서 TBytes에 담겨진 데이터를 전송하고 나면 TBytes의 길이를 초기화 해야 할것 같은데
: : 초기화할 방법을 찾지 못하고 있습니다.
: :
: : TBytes를 사용하고 난 다음 TBytes의 길이를 0으로 만들 수 있는 방법이 있으면 알려주시면 감사하겠습니다.
|