计算通过套接字发送/接收的数据的带宽速度?

Bar*_*zyn 5 java sockets iostream

有没有人有关于如何计算套接字带宽使用的任何提示?

例如,当我通过套接字将数据发送到我连接的服务器时,我想显示正在发送的Kb/s.

谷歌搜索没有透露任何有用的信息.也许我正在寻找错误的条款.

Mar*_*ers 5

您可能轻松做的最好的事情是在开始写入时记录,然后计算您已成功发送到Socket.getOutputStream.write()方法的字节数.对于少量数据,这将是非常不准确的,因为它只是填满操作系统的传输缓冲区,它最初会比实际发送它们更快地占用字节数.

但是,它应该在相当大量的数据上基本上分摊正确的费率.

  • 注意:Guava的[CountingOutputStream](http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/io/CountingOutputStream.html)可以很容易地用另一个流包装输出流计算它写入的字节数. (2认同)