СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Как можно програмно ограничить скорость соединения при закачке файла?

Ответ

Смотря чем закачивать файл.
Например, если с помощью 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 Сообщество Чайников
Контактная информация