Es gibt (mindestens) zwei verschiedene Informationen, die Sie benötigen: die Menge der noch nicht gesendeten Daten und die Menge der gesendeten, aber noch nicht bestätigten Daten.
Unter Linux: SIOCOUTQ
wird dokumentiert, um die Menge der nicht gesendeten Daten anzugeben, gibt aber tatsächlich die Summe von (nicht gesendete Daten + gesendete-aber-nicht-ACK-ed Daten) an. A neuester Patch (Februar 2016) ermöglichte es, die tatsächlich nicht gesendeten Daten aus dem tcpi_notsent_bytes
Feld in der TCP_INFO
Struktur.
Unter macOS und iOS: getsockopt(fd, SOL_SOCKET, SO_NWRITE, ...)
ist genau wie SIOCOUTQ
Es ist dokumentiert, dass es die Menge der nicht gesendeten Daten angibt, aber es gibt tatsächlich die Summe von (nicht gesendete Daten + gesendete, aber nicht bestätigte Daten). Ich kenne keine Möglichkeit, feinere Informationen zu erhalten.
Unter Windows: GetPerTcpConnectionEStats
mit dem TcpConnectionEstatsSendBuff
Option gibt Ihnen sowohl ungesendete Daten als auch gesendete, aber nicht bestätigte Daten als zwei separate Zahlen .
Ich weiß nicht, wie ich diese Informationen auf anderen Betriebssystemen erhalten kann.