如何使用 TIdTCPServer 或 TIdTCPClient 获取当前带宽速度?
我想知道,客户端从服务器下载数据的速度有多快?
例如:下载速度:450 kbps
最佳答案
将处理程序分配给连接的 TIdTCPConnection
对象的 OnWorkBegin
、OnWork
和 OnWorkEnd
事件。 OnWorkBegin
事件有一个 AWorkCountMax
参数,该参数为您提供预计传输的总字节数(如果提前知道)。 OnWork
事件有一个 AWorkCount
参数,可提供自触发 OnWorkBegin
事件以来实际传输的字节总数。
每当触发 OnWork
事件时,请从当前 AWorkCount
值中减去先前的 AWorkCount
值,以确定之间传输了多少字节两个事件,然后将该值除以两个事件之间耗时量。利用该最终值,您可以根据需要计算 b/sec、kb/sec、mb/sec 等。
根据您发送/接收数据的具体方式,您可能需要手动调用 TIdTCPConnection< 的
获取要开始触发的 BeginWork()
和 EndWork()
方法OnWork...
事件。大多数 Indy 的读/写方法不会在内部调用 Begin/EndWork()
。
关于delphi - 如何获取当前带宽(下载)速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650632/