Вопрос
Как можно програмно ограничить скорость соединения при закачке файла?
Ответ
Смотря чем закачивать файл.
Например, если с помощью Microsoft Internet Transfer Control, то можно сделать так:
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
'здесь можно обрабатывать другие события
Case icResponseCompleted '12
'открываем файл для записи принимаемых данных
intFile = FreeFile
Open "test.txt" For Binary Access Write As #intFile
'определяем время старта
lCountTimeStart = timeGetTime
'принимаем первую порцию данных
vtData = Inet1.GetChunk(1024, icByteArray)
Do While LenB(CStr(vtData)) > 0
Put #intFile, , vtData
'следующая порция данных
vtData = Inet1.GetChunk(1024, icByteArray)
'вот тут можно проверять сколько сливаем в секунду
lCountData = Seek(1) 'уже слили
lCountTime = (timeGetTime — lCountTimeStart) / 1000 'прошло секунд
lSpeed = lCountData / lCountTime 'байт в секунду
'теперь нужно вычислить паузу в зависимости от нужной скорости
lPause = 'как? думайте сами — текущая скорость есть, нужная скорость тоже
'держим паузу
Sleep lPause
Loop
Put #intFile, , vtData
Close #intFile
End Select
End Sub
SHatrykin Ivan
Copyright 2000-2004 Сообщество Чайников
Контактная информация