Networkfunktionen>PB/Systeminterner Ablauf vom Datenempfang?
Verfasst: 22.04.2012 21:19
Hallo Leute.
Für die richtige Erstellung (keine Überflüssigen Abfragen) des Codes beim Empfang der Daten habe ich folgendes Anliegen:
Mit "NetworkServerEvent()" erfahre ich ob Daten eingegangen sind. Mit "EventClient()" an wer gesendet hat (ConnectionID).
Mit "ReceiveNetworkData()" kann ich nun Daten empfangen. Kein Problem.
Nun frage ich aber Daten ab und bekomme als Ergebnis auch raus, ob noch Daten vorhanden sind. Gehen wir mal davon aus, das noch Daten vorhanden sind. Nun frage ich weiterhin ab, ob Daten vorhanden sind. Vom Prinzip her egal, ob Byteweise, zwei Bytes oder 1000 ausgelesen werden.Dies geschieht möglichst in Form einer Schleife.
Was ist aber, wenn in der Zeit des Auslesens neue Daten eintreffen. Sind die dann genau in dem Buffer, so das ich sie weiter auslesen kann, oder werden die in einen neuen internen Speicher gelegt, auf den ich erst nach dem auslesen des alten automatisch zugriff erhalte. Schließlich gibt es ja auch neue Serverevents.
Weiterhin ist auch interessant, wann "NetworkServerEvent" ein Event liefert? Beim Eingang bestimmter Datenmengen innerhalb eines Zeitraums, oder dauerhaft, solange Daten im Speicher sind?
Einerseit möchte ich das wissen, um den Hintergrund etwas zu verstehen und zweitens, damit bei größeren Datenmengen (gerade bei langsamer Verbindung) ich nicht mit einer falschen Codestruktur dafür Sorge, das nur die Daten einer Verbindung ausgelesen werden bis der Buffer leer ist und dann erst die anderen abgearbeitet werden.
Egal wie es intern abläuft, ist ja kein Problem diese ein oder zwei Zeilen Code anzupassen, aber dazu müßte ich halt wissen wie es läuft.
Durch reines Probieren kann man sich da ja leider nicht sicher sein.
Danke Toshy
Für die richtige Erstellung (keine Überflüssigen Abfragen) des Codes beim Empfang der Daten habe ich folgendes Anliegen:
Mit "NetworkServerEvent()" erfahre ich ob Daten eingegangen sind. Mit "EventClient()" an wer gesendet hat (ConnectionID).
Mit "ReceiveNetworkData()" kann ich nun Daten empfangen. Kein Problem.
Nun frage ich aber Daten ab und bekomme als Ergebnis auch raus, ob noch Daten vorhanden sind. Gehen wir mal davon aus, das noch Daten vorhanden sind. Nun frage ich weiterhin ab, ob Daten vorhanden sind. Vom Prinzip her egal, ob Byteweise, zwei Bytes oder 1000 ausgelesen werden.Dies geschieht möglichst in Form einer Schleife.
Was ist aber, wenn in der Zeit des Auslesens neue Daten eintreffen. Sind die dann genau in dem Buffer, so das ich sie weiter auslesen kann, oder werden die in einen neuen internen Speicher gelegt, auf den ich erst nach dem auslesen des alten automatisch zugriff erhalte. Schließlich gibt es ja auch neue Serverevents.
Weiterhin ist auch interessant, wann "NetworkServerEvent" ein Event liefert? Beim Eingang bestimmter Datenmengen innerhalb eines Zeitraums, oder dauerhaft, solange Daten im Speicher sind?
Einerseit möchte ich das wissen, um den Hintergrund etwas zu verstehen und zweitens, damit bei größeren Datenmengen (gerade bei langsamer Verbindung) ich nicht mit einer falschen Codestruktur dafür Sorge, das nur die Daten einer Verbindung ausgelesen werden bis der Buffer leer ist und dann erst die anderen abgearbeitet werden.
Egal wie es intern abläuft, ist ja kein Problem diese ein oder zwei Zeilen Code anzupassen, aber dazu müßte ich halt wissen wie es läuft.
Durch reines Probieren kann man sich da ja leider nicht sicher sein.
Danke Toshy