{Free,Net,Open,*} BSD,Solaris,Windows有什么相似之处吗?
您可能需要(至少)两条不同的信息:尚未发送的数据量,以及已发送但未确认的数据量.在Linux上:记录SIOCOUTQ以提供未发送数据的数量,但实际上给出了(未发送数据已发送但未确认数据)的总和. recent patch (Feb 2016)使得可以从TCP_INFO结构中的tcpi_notsent_bytes字段获取实际的未发送数据.
在macOS和iOS上:getsockopt(fd,SOL_SOCKET,SO_NWRITE,…)就像SIOCOUTQ:它被记录为给出未发送数据的数量,但实际上给出了(未发送数据已发送但未确认的数据)数据).我不知道如何获得更细粒度的信息.
在Windows上:GetPerTcpConnectionEStats
使用TcpConnectionEstatsSendBuff选项为您提供未发送的数据和已发送但未发送的数据as two separate numbers.
我不知道如何在其他操作系统上获取此信息.
精彩评论