CSocketFile::CSocketFile

CSocketFile (CSocket *LineOut,BOOLbArchiveCompatibleTRUE=);

Parameter

lineOut

Der Socket an den CSocketFile -Objekt angefügt.

bArchiveCompatible

Gibt an, ob das Dateiobjekt für die Verwendung mit einem CArchive -Objekt ist. Übergeben Sie FALSE , nur wollen Sie das CSocketFile -Objekt in eine eigenständige Weise verwenden, wie Sie ein Stand-Alone CFile -Objekt, mit gewissen Einschränkungen. Dieses Flag ändert wie das CArchive -Objekt angefügt, dem CSocketFile -Objekt verwaltet seinen Puffer zum Lesen.

Bemerkungen

Ein CSocketFile -Objekt erstellt. Das Objekt Destruktor distanziert sich von der Socket-Objekt, wenn das Objekt Gültigkeitsbereich verlässt oder gelöscht wird.

Hinweis Ein CSocketFile kann auch als eine (begrenzte) Datei ohne ein CArchive -Objekt verwendet werden. BArchiveCompatible -Parameter des Konstruktors CSocketFile ist standardmäßig TRUE. Dies gibt an, dass das Dateiobjekt für die Verwendung mit einem Archiv ist. Um das Dateiobjekt ohne Archiv zu verwenden, übergeben Sie FALSE im Parameter bArchiveCompatible.

Im Modus "kompatible Archiv" ein CSocketFile -Objekt bietet eine bessere Leistung und reduziert die Gefahr eines "Deadlocks". Ein Deadlock tritt auf, wenn die sendenden und empfangenden Sockets auf einander, oder für eine gemeinsame Ressource warten. Diese Situation kann auftreten, wenn das CArchive -Objekt mit dem CSocketFile der Weg, es tut mit ein CFile -Objekt gearbeitet. Mit CFilekann das Archiv davon ausgehen, dass wenn er weniger Bytes erhält als angefordert, das Ende der Datei erreicht wurde.

Mit CSocketFilejedoch ist Daten nachrichtenbasiert; der Puffer kann mehrere Nachrichten, enthalten, so erhalten weniger als die Anzahl der angeforderten Bytes nicht Ende der Datei bedeutet. Die Anwendung wird nicht in diesem Fall blockiert, wie es mit CFilekönnte, und es lesen von Nachrichten aus dem Puffer weiter kann, bis der Puffer leer ist. Die CArchive::IsBufferEmpty -Funktion ist nützlich für die Überwachung des Status des Archivs Puffer in einem solchen Fall.

Finden Sie weitere Informationen über die Verwendung von CSocketFileArtikeln Windows Sockets: Verwenden von Sockets mit Archiven und Windows Sockets: Beispiel des Sockets verwenden Archiv im Visual C++ Programmer's Guide.

CSocketFile ÜbersichtMember der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;CFile::CFile, CFile::Read

Index