Socket.BeginSendFile Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skickar en fil asynkront till ett anslutet Socket objekt.
Överlagringar
| Name | Description |
|---|---|
| BeginSendFile(String, AsyncCallback, Object) |
Skickar filen |
| 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.