SendNetworkData - "wahren" Fortschirtt ermitteln

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

SendNetworkData - "wahren" Fortschirtt ermitteln

Beitrag von STARGÅTE »

Tachchen,

nachdem ich wieder ein bisschen mit Netzwerk gespielt habe, ist mir aufgefallen, dass nach Beendigung von SendNetworkData() die Daten noch garnicht gesendet wurden.
Scheinbar legt SendNetworkData() die Daten nur in den Ausgangsbuffer, von wo sie dann "danach" erst verschickt werden.

Meine Frage ist nun, wie kann ich (bei großen Datenmengen von einigen MB) den wahren Upload-Fortschritt ermitteln?

Das erste was mir eingefallen ist, ist das der Empfänger dem Sender fortlaufen über den Download-Fortschritt berichtet, so hätte ich gleich noch eine Kontrolle drin, ob wirklich alles ankommt.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Re: SendNetworkData - "wahren" Fortschirtt ermitteln

Beitrag von KatSeiko »

Das liegt am Layer-Modell des Netzwerkprotokolls (siehe auch OSI-Modell). Die oberen drei Layer sind die einzigen, die von deinem Programm wahrgenommen werden können (Application, Presentation und Session). Die darunter liegenden Teile sind mehr oder minder gegen den Zugriff geschützt. Im Transport-Layer spricht man daher auch nicht mehr von "Daten" sondern von "Segmenten". Diese werden dann im Network-Layer (auf der Netzwerkkarte) in "Pakete" verpackt und auf die Reise geschickt. Der Vollständigkeit halber seien noch Data Link-Layer und Physical Layer genannt, die sich um den Transport von "Frames" kümmern, welches die in passende Größen zerschnipselten "Pakete" in Bitform darstellen.

Aus Programm-Sicht sind die oberen drei Layer noch erkennbar. Im Transport-Layer füttert das Protokoll (UDP oder TCP) schon die Daten in die Netzwerkkarte.
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Antworten