|
TIdFTP 클라이언트 하나로 서버에 접속하여 파일 다운로드는 정상 동작 합니다.
속도 개선을 위해서 , 여러개의 쓰레드를 생성한후 각 쓰레드에서 TIdFTP 를 동적 생성하고,
이를 통하여 파일을 다운로드 받도록 하면, 동작 순서로 보면 몇번째 뒤 쓰레드의 컴포넌트는
"Could not bind socket. Address and port are already in use" 에러가 발생합니다.
원인이 무었일까요?
IdFTP = new TIdFTP(NULL);
IdFTP->Port = 21;
IdFTP->Host = "192.168.10.130";
IdFTP->Username = "1";
IdFTP->Password = "1";
IdFTP->AutoLogin = true;
IdFTP->TransferType = ftBinary;
IdFTP->IPVersion = Id_IPv4;
// 서버에서 데이터를 압축하도록 되어 있습니다.
TIdCompressionIntercept *IdCompressionIntercept = new TIdCompressionIntercept(NULL);
IdCompressionIntercept->CompressionLevel = 9;
IdFTP->Connect();
IdFTP->Passive = true;
IdFTP->Get("a.avi", "b.avi"); <-- 여기에서 에러가 발생합니다. 쓰레드마다 저장하는 파일명은 틀리게 되어 있습니다.
...
|