Socket.BeginSendFile Metod

Definition

Skickar en fil asynkront till ett anslutet Socket objekt.

Överlagringar

Name Description
BeginSendFile(String, AsyncCallback, Object)

Skickar filen fileName till ett anslutet Socket objekt med hjälp av UseDefaultWorkerThread flaggan.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Skickar en fil och buffertar av data asynkront till ett anslutet Socket objekt.

BeginSendFile(String, AsyncCallback, Object)

Skickar filen fileName till ett anslutet Socket objekt med hjälp av UseDefaultWorkerThread flaggan.

public:
 IAsyncResult ^ BeginSendFile(System::String ^ fileName, AsyncCallback ^ callback, System::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

Parametrar

fileName
String

En sträng som innehåller sökvägen och namnet på filen som ska skickas. Den här parametern kan vara null.

callback
AsyncCallback

Ombudet AsyncCallback .

state
Object

Ett objekt som innehåller tillståndsinformation för den här begäran.

Returer

Ett IAsyncResult objekt som representerar den asynkrona sändningen.

Undantag

Objektet Socket har stängts.

Socketen är inte ansluten till en fjärrvärd.

Det gick inte att hitta filen fileName .

endast .NET Framework: Ett fel uppstod vid försök att komma åt socketen. Se avsnittet kommentarer nedan.

Kommentarer

Important

Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.

Den här överlagringen skickar filen fileName över socketen. Om fileName finns i den lokala katalogen kan den identifieras med bara namnet på filen. Annars måste filens fullständiga sökväg och namn anges. Jokertecken (".. \\myfile.txt") och UNC-resursnamn ("\\\\delad katalog\\myfile.txt") stöds. Om filen inte hittas genereras undantaget FileNotFoundException .

Du kan skicka ett återanrop som implementeras AsyncCallback till BeginSendFile för att få ett meddelande om att åtgärden har slutförts. Observera att om den underliggande nätverksstacken slutför åtgärden synkront körs återanropet infogat under anropet till BeginSendFile. I det här fallet CompletedSynchronously anges egenskapen för den returnerade IAsyncResult till för true att indikera att metoden slutfördes synkront. AsyncState Använd egenskapen för IAsyncResult att hämta tillståndsobjektet som skickas BeginSendFile till metoden.

Åtgärden BeginSendFile måste slutföras genom att anropa EndSendFile metoden. Metoden anropas vanligtvis av ombudet AsyncCallback . EndSendFile blockerar den anropande tråden tills åtgärden har slutförts.

Även om det är avsett för anslutningsorienterade protokoll fungerar BeginSendFile även för anslutningslösa protokoll, förutsatt att du först anropar Connect metoden eller BeginConnect för att upprätta en standardvärd. Med anslutningslösa protokoll måste du vara säker på att storleken på filen inte överskrider den maximala paketstorleken för den underliggande tjänstleverantören. Om det gör det skickas inte datagrammet och BeginSendFile genererar ett SocketException undantag.

Note

Om du får ett SocketException undantag använder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.

Note

Körningskontexten (säkerhetskontexten, den personifierade användaren och den anropande kontexten) cachelagras för de asynkrona Socket metoderna. Efter den första användningen av en viss kontext (en specifik asynkron Socket metod, en specifik Socket instans och en specifik motringning) kommer efterföljande användning av den kontexten att se en prestandaförbättring.

Gäller för

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Skickar en fil och buffertar av data asynkront till ett anslutet 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);
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

Parametrar

fileName
String

En sträng som innehåller sökvägen och namnet på filen som ska skickas. Den här parametern kan vara null.

preBuffer
Byte[]

De data som ska skickas innan filen skickas. Den här parametern kan vara null.

postBuffer
Byte[]

De data som ska skickas efter att filen har skickats. Den här parametern kan vara null.

flags
TransmitFileOptions

En bitvis kombination av uppräkningsvärdena.

callback
AsyncCallback

Ett AsyncCallback ombud som ska anropas när åtgärden är klar. Den här parametern kan vara null.

state
Object

Ett användardefinierat objekt som innehåller tillståndsinformation för den här begäran. Den här parametern kan vara null.

Returer

Ett IAsyncResult objekt som representerar den asynkrona åtgärden.

Undantag

Objektet Socket har stängts.

endast .NET Framework: Ett fel uppstod vid försök att komma åt socketen. Se avsnittet kommentarer nedan.

Operativsystemet är inte Windows NT eller senare.

-eller-

Socketen är inte ansluten till en fjärrvärd.

Det gick inte att hitta filen fileName .

Kommentarer

Important

Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.

Den här överlagringen kräver namnet på den fil som du vill skicka och en bitvis kombination av TransmitFileOptions värden. Parametern preBuffer innehåller alla data som du vill föregå filen. postBuffer innehåller data som du vill följa filen. Om fileName finns i den lokala katalogen kan den identifieras med bara namnet på filen. Annars måste filens fullständiga sökväg och namn anges. Jokertecken (".. \\myfile.txt") och UNC-resursnamn ("\\\\delad katalog\\myfile.txt") stöds. Om filen inte hittas genereras undantaget FileNotFoundException .

Parametern flags innehåller ytterligare information om filöverföringen. Mer information om hur du använder den här parametern finns i TransmitFileOptions.

Du kan skicka ett återanrop som implementeras AsyncCallback till BeginSendFile för att få ett meddelande om att åtgärden har slutförts. Observera att om den underliggande nätverksstacken slutför åtgärden synkront körs återanropet infogat under anropet till BeginSendFile. I det här fallet CompletedSynchronously anges egenskapen för den returnerade IAsyncResult till för true att indikera att metoden slutfördes synkront. AsyncState Använd egenskapen för IAsyncResult att hämta tillståndsobjektet som skickas BeginSendFile till metoden.

Åtgärden BeginSendFile måste slutföras genom att anropa EndSendFile metoden. Metoden anropas vanligtvis av det angivna AsyncCallback ombudet. EndSendFile blockerar den anropande tråden tills åtgärden har slutförts.

Även om det är avsett för anslutningsorienterade protokoll fungerar BeginSendFile även för anslutningslösa protokoll, förutsatt att du först anropar Connect metoden eller BeginConnect för att upprätta en standardvärd. Med anslutningslösa protokoll måste du vara säker på att storleken på filen inte överskrider den maximala paketstorleken för den underliggande tjänstleverantören. Om det gör det skickas inte datagrammet och BeginSendFile genererar ett SocketException undantag.

Note

Om du får ett SocketException undantag använder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.

Note

Körningskontexten (säkerhetskontexten, den personifierade användaren och den anropande kontexten) cachelagras för de asynkrona Socket metoderna. Efter den första användningen av en viss kontext (en specifik asynkron Socket metod, en specifik Socket instans och en specifik motringning) kommer efterföljande användning av den kontexten att se en prestandaförbättring.

Gäller för