CSocketFile::CSocketFile
Erstellt ein CSocketFile-Objekt.
explicit CSocketFile(
CSocket* pSocket,
BOOL bArchiveCompatible = TRUE
);
Parameter
pSocket
Der Socket, zu CSocketFile des Objekts anzufügen.bArchiveCompatible
Gibt an, ob das Dateiobjekt zur Verwendung mit einem CArchive-Objekt ist.Führen Sie FALSE nur, wenn Sie das CSocketFile-Objekt in einer eigenständigen Weise, wie Sie ein eigenständiges Objekt CFile wurden, mit bestimmten Einschränkungen verwenden möchten.Dieses Flag ändert, wie das CArchive-Objekt, das dem Objekt CSocketFile angefügt wird, den Puffer zum Lesen verwaltet.
Hinweise
Der Destruktor des Objekts hebt sich vom Socketobjekt xxxx 3 auf, wenn das Objekt den Gültigkeitsbereich verlässt oder gelöscht wird.
Hinweis |
---|
CSocketFile kann während (eingeschränkte) Datei eine ohne ein CArchive-Objekt auch verwendet werden.Standardmäßig ist der CSocketFilebArchiveCompatible-Parameter des Konstruktors TRUE.Dies gibt an, dass das Dateiobjekt zur Verwendung mit einem Archiv ist.Um das Dateiobjekt ohne ein Archiv zu verwenden, führen Sie FALSE im bArchiveCompatible-Parameter. |
In seinem kompatiblen Modus" "des Archivs stellt ein Objekt CSocketFile bessere Leistung und reduziert die Gefahr eines Deadlocks "." Ein Deadlock tritt auf, wenn die sendenden und empfangenden Sockets aufeinander warten, oder für eine allgemeine Ressource auf.Diese Situation kann eintreten, wenn das Objekt CArchive mit CSocketFile die Methode arbeitet, die es einer CFile-Objekt ausführt.Mit CFile kann das Archiv davon ausgehen, dass, wenn es weniger Bytes als empfängt, es angefordert hat, ist das Dateiende erreicht wurde.
Mit CSocketFile sind jedoch Daten die basierte Meldung; der Puffer kann mehrere Nachrichten, sodass das Empfangen weniger als, enthalten die Anzahl von Bytes angefordert nicht Dateiende bedeutet.Die Anwendung blockiert nicht in diesem Fall, wie sie mit CFile könnte, und sie Lesenmeldungen aus dem Puffer fortsetzen kann, wenn der Puffer leer ist.Die CArchive::IsBufferEmpty-Funktion ist für den Zustand des Puffers des Archivs in einem solchen Fall überwachen hilfreich.
Weitere Informationen über die Verwendung von CSocketFile, finden Sie in Artikel Windows Sockets: Verwenden von Sockets mit Archiven und Windows Sockets: Beispiel für Sockets mithilfe der Archive.
Anforderungen
Header: afxsock.h