Socket.BeginSendFile Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Sendet eine Datei asynchron an ein verbundenes Socket Objekt.
Überlädt
| Name | Beschreibung |
|---|---|
| BeginSendFile(String, AsyncCallback, Object) |
Sendet die Datei |
| BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object) |
Sendet eine Datei und Puffer von Daten asynchron an ein verbundenes Socket Objekt. |
BeginSendFile(String, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet die Datei fileName mithilfe des UseDefaultWorkerThread Flags an ein verbundenes Socket Objekt.
public:
IAsyncResult ^ BeginSendFile(System::String ^ fileName, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile(string? fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, AsyncCallback callback, object state);
member this.BeginSendFile : string * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- fileName
- String
Eine Zeichenfolge, die den Pfad und den Namen der zu sendenden Datei enthält. Dieser Parameter kann null sein.
- callback
- AsyncCallback
Die AsyncCallback Stellvertretung.
- state
- Object
Ein Objekt, das Statusinformationen für diese Anforderung enthält.
Gibt zurück
Ein IAsyncResult Objekt, das das asynchrone Senden darstellt.
Ausnahmen
Das Socket Objekt wurde geschlossen.
Der Socket ist nicht mit einem Remotehost verbunden.
Die Datei fileName wurde nicht gefunden.
.NET Framework und .NET 5 und früher: Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten. Weitere Informationen finden Sie weiter unten im Abschnitt "Hinweise".
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
Diese Überladung sendet die Datei fileName über den Socket. Wenn fileName sie sich im lokalen Verzeichnis befindet, kann sie nur mit dem Namen der Datei identifiziert werden. Andernfalls muss der vollständige Pfad und name der Datei angegeben werden. Wildcards (".. \\myfile.txt") und UNC-Freigabenamen ("\\\\freigegebenes Verzeichnis\\myfile.txt") werden unterstützt. Wenn die Datei nicht gefunden wird, wird die Ausnahme FileNotFoundException ausgelöst.
Sie können einen Rückruf übergeben, der AsyncCallback implementiert wird, um über den Abschluss des Vorgangs BeginSendFile benachrichtigt zu werden. Wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abgeschlossen hat, wird der Rückruf während des Aufrufs BeginSendFileinline ausgeführt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult Eigenschaft so festgelegt true , dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState Eigenschaft des IAsyncResult Zustandsobjekts, das an die BeginSendFile Methode übergeben wird.
Der BeginSendFile Vorgang muss durch Aufrufen der EndSendFile Methode abgeschlossen werden. In der AsyncCallback Regel wird die Methode vom Delegaten aufgerufen. EndSendFile blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Obwohl für verbindungsorientierte Protokolle vorgesehen, BeginSendFile funktioniert es auch für verbindungslose Protokolle, vorausgesetzt, Sie rufen zuerst die Connect oder BeginConnect Methode auf, um einen Standard-Remotehost einzurichten. Bei verbindungslosen Protokollen müssen Sie sicherstellen, dass die Größe der Datei die maximale Paketgröße des zugrunde liegenden Dienstanbieters nicht überschreitet. Wenn dies der Fall ist, wird das Datagramm nicht gesendet und BeginSendFile löst eine SocketException Ausnahme aus.
Hinweis
Wenn Sie eine SocketException Ausnahme erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.
Hinweis
Der Ausführungskontext (der Sicherheitskontext, der identitätswechselte Benutzer und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Instanz und einem bestimmten Socket Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.
Gilt für:
BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet eine Datei und Puffer von Daten asynchron an ein verbundenes Socket Objekt.
public:
IAsyncResult ^ BeginSendFile(System::String ^ fileName, cli::array <System::Byte> ^ preBuffer, cli::array <System::Byte> ^ postBuffer, System::Net::Sockets::TransmitFileOptions flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile(string? fileName, byte[]? preBuffer, byte[]? postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback callback, object state);
member this.BeginSendFile : string * byte[] * byte[] * System.Net.Sockets.TransmitFileOptions * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, preBuffer As Byte(), postBuffer As Byte(), flags As TransmitFileOptions, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- fileName
- String
Eine Zeichenfolge, die den Pfad und den Namen der zu sendenden Datei enthält. Dieser Parameter kann null sein.
- preBuffer
- Byte[]
Die zu sendenden Daten, bevor die Datei gesendet wird. Dieser Parameter kann null sein.
- postBuffer
- Byte[]
Die Daten, die nach dem Senden der Datei gesendet werden sollen. Dieser Parameter kann null sein.
- flags
- TransmitFileOptions
Eine bitweise Kombination der Enumerationswerte.
- callback
- AsyncCallback
Ein AsyncCallback Delegat, der aufgerufen werden soll, wenn dieser Vorgang abgeschlossen ist. Dieser Parameter kann null sein.
- state
- Object
Ein benutzerdefiniertes Objekt, das Statusinformationen für diese Anforderung enthält. Dieser Parameter kann null sein.
Gibt zurück
Ein IAsyncResult Objekt, das den asynchronen Vorgang darstellt.
Ausnahmen
Das Socket Objekt wurde geschlossen.
.NET Framework und .NET 5 und früher: Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten. Weitere Informationen finden Sie weiter unten im Abschnitt "Hinweise".
Das Betriebssystem ist nicht Windows NT oder höher.
- oder -
Der Socket ist nicht mit einem Remotehost verbunden.
Die Datei fileName wurde nicht gefunden.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
Diese Überladung erfordert den Namen der Datei, die Sie senden möchten, und eine bitweise Kombination von TransmitFileOptions Werten. Der preBuffer Parameter enthält alle Daten, die der Datei vorangestellt werden sollen.
postBuffer enthält Daten, die Sie der Datei folgen möchten. Wenn fileName sie sich im lokalen Verzeichnis befindet, kann sie nur mit dem Namen der Datei identifiziert werden. Andernfalls muss der vollständige Pfad und name der Datei angegeben werden. Wildcards (".. \\myfile.txt") und UNC-Freigabenamen ("\\\\freigegebenes Verzeichnis\\myfile.txt") werden unterstützt. Wenn die Datei nicht gefunden wird, wird die Ausnahme FileNotFoundException ausgelöst.
Der flags Parameter enthält zusätzliche Informationen zur Dateiübertragung. Weitere Informationen zur Verwendung dieses Parameters finden Sie unter TransmitFileOptions.
Sie können einen Rückruf übergeben, der AsyncCallback implementiert wird, um über den Abschluss des Vorgangs BeginSendFile benachrichtigt zu werden. Wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abgeschlossen hat, wird der Rückruf während des Aufrufs BeginSendFileinline ausgeführt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult Eigenschaft so festgelegt true , dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState Eigenschaft des IAsyncResult Zustandsobjekts, das an die BeginSendFile Methode übergeben wird.
Der BeginSendFile Vorgang muss durch Aufrufen der EndSendFile Methode abgeschlossen werden. In der Regel wird die Methode vom bereitgestellten AsyncCallback Delegaten aufgerufen. EndSendFile blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Obwohl für verbindungsorientierte Protokolle vorgesehen, BeginSendFile funktioniert es auch für verbindungslose Protokolle, vorausgesetzt, Sie rufen zuerst die Connect oder BeginConnect Methode auf, um einen Standard-Remotehost einzurichten. Bei verbindungslosen Protokollen müssen Sie sicherstellen, dass die Größe der Datei die maximale Paketgröße des zugrunde liegenden Dienstanbieters nicht überschreitet. Wenn dies der Fall ist, wird das Datagramm nicht gesendet und BeginSendFile löst eine SocketException Ausnahme aus.
Hinweis
Wenn Sie eine SocketException Ausnahme erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.
Hinweis
Der Ausführungskontext (der Sicherheitskontext, der identitätswechselte Benutzer und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Instanz und einem bestimmten Socket Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.