Назначить обработчики для событий OnWorkBegin
, OnWork
и OnWorkEnd
объекта TIdTCPConnection
соединения. Событие OnWorkBegin
имеет параметр AWorkCountMax
, который дает вам общее количество ожидаемых передаваемых байтов (если известно заранее). Событие OnWork
имеет параметр AWorkCount
, который дает вам промежуточную сумму того, сколько байтов фактически было передано с момента запуска события OnWorkBegin
.
Всякий раз, когда происходит событие OnWork
, вычтите предыдущее значение AWorkCount
из текущего значения AWorkCount
, чтобы определить, сколько байтов было передано между двумя событиями, а затем разделите это значение на количество времени, в течение которого прошло между этими двумя событиями. С этим последним значением вы можете при необходимости вычислить b / sec, kb / sec, mb / sec и т. Д.
В зависимости от того, как именно вы отправляете / получаете ваши данные, вам может потребоваться вручную вызвать методы BeginWork()
и EndWork()
для TIdTCPConnection
, чтобы получить события OnWork...
для запуска. Большинство методов чтения / записи в Indy не вызывают Begin/EndWork()
внутри.