Socket.BeginSendFile Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een bestand asynchroon verzonden naar een verbonden Socket object.
Overloads
| Name | Description |
|---|---|
| BeginSendFile(String, AsyncCallback, Object) |
Hiermee wordt het bestand |
| BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object) |
Hiermee verzendt u een bestand en buffers van gegevens asynchroon naar een verbonden Socket object. |
BeginSendFile(String, AsyncCallback, Object)
Hiermee wordt het bestand fileName verzonden naar een verbonden Socket object met behulp van de UseDefaultWorkerThread vlag.
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
Parameters
- fileName
- String
Een tekenreeks die het pad en de naam van het te verzenden bestand bevat. Deze parameter kan zijn null.
- callback
- AsyncCallback
De AsyncCallback gedelegeerde.
- state
- Object
Een object met statusinformatie voor deze aanvraag.
Retouren
Een IAsyncResult object dat de asynchrone verzend vertegenwoordigt.
Uitzonderingen
Het Socket object is gesloten.
De socket is niet verbonden met een externe host.
Het bestand fileName is niet gevonden.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket. Zie de sectie Opmerkingen hieronder.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
Deze overbelasting verzendt het bestand fileName via de socket. Als fileName deze zich in de lokale map bevindt, kan deze worden geïdentificeerd met alleen de naam van het bestand. Anders moet het volledige pad en de naam van het bestand worden opgegeven. Jokertekens (".. \\myfile.txt") en UNC-sharenamen ("\\\\shared directory\\myfile.txt") worden ondersteund. Als het bestand niet wordt gevonden, wordt de uitzondering FileNotFoundException gegenereerd.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginSendFile om een melding te ontvangen over de voltooiing van de bewerking. Houd er rekening mee dat als de onderliggende netwerkstack de bewerking synchroon voltooit, de callback inline wordt uitgevoerd, tijdens de aanroep naar BeginSendFile. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginSendFile methode.
De BeginSendFile bewerking moet worden voltooid door de EndSendFile methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de AsyncCallback gemachtigde. EndSendFile blokkeert de aanroepende thread totdat de bewerking is voltooid.
Hoewel deze is bedoeld voor verbindingsgeoriënteerde protocollen, BeginSendFile werkt dit ook voor verbindingsloze protocollen, mits u eerst de Connect of BeginConnect methode aanroept om een standaard externe host tot stand te brengen. Met verbindingsloze protocollen moet u ervoor zorgen dat de grootte van uw bestand niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dit het geval is, wordt het datagram niet verzonden en BeginSendFile wordt er een SocketException uitzondering gegenereerd.
Note
Als u een SocketException uitzondering ontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Van toepassing op
BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)
Hiermee verzendt u een bestand en buffers van gegevens asynchroon naar een verbonden Socket object.
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
Parameters
- fileName
- String
Een tekenreeks die het pad en de naam van het te verzenden bestand bevat. Deze parameter kan zijn null.
- preBuffer
- Byte[]
De gegevens die moeten worden verzonden voordat het bestand wordt verzonden. Deze parameter kan zijn null.
- postBuffer
- Byte[]
De gegevens die moeten worden verzonden nadat het bestand is verzonden. Deze parameter kan zijn null.
- flags
- TransmitFileOptions
Een bitsgewijze combinatie van de opsommingswaarden.
- callback
- AsyncCallback
Een AsyncCallback gemachtigde die moet worden aangeroepen wanneer deze bewerking is voltooid. Deze parameter kan zijn null.
- state
- Object
Een door de gebruiker gedefinieerd object met statusinformatie voor deze aanvraag. Deze parameter kan zijn null.
Retouren
Een IAsyncResult object dat de asynchrone bewerking vertegenwoordigt.
Uitzonderingen
Het Socket object is gesloten.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket. Zie de sectie Opmerkingen hieronder.
Het besturingssysteem is niet Windows NT of hoger.
– of –
De socket is niet verbonden met een externe host.
Het bestand fileName is niet gevonden.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
Deze overbelasting vereist de naam van het bestand dat u wilt verzenden en een bitsgewijze combinatie van TransmitFileOptions waarden. De preBuffer parameter bevat alle gegevens die u wilt voorafgaan aan het bestand.
postBuffer bevat gegevens die u wilt volgen in het bestand. Als fileName deze zich in de lokale map bevindt, kan deze worden geïdentificeerd met alleen de naam van het bestand. Anders moet het volledige pad en de naam van het bestand worden opgegeven. Jokertekens (".. \\myfile.txt") en UNC-sharenamen ("\\\\shared directory\\myfile.txt") worden ondersteund. Als het bestand niet wordt gevonden, wordt de uitzondering FileNotFoundException gegenereerd.
De flags parameter bevat aanvullende informatie over de bestandsoverdracht. Zie voor meer informatie over het gebruik van deze parameter TransmitFileOptions.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginSendFile om een melding te ontvangen over de voltooiing van de bewerking. Houd er rekening mee dat als de onderliggende netwerkstack de bewerking synchroon voltooit, de callback inline wordt uitgevoerd, tijdens de aanroep naar BeginSendFile. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginSendFile methode.
De BeginSendFile bewerking moet worden voltooid door de EndSendFile methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de opgegeven AsyncCallback gemachtigde. EndSendFile blokkeert de aanroepende thread totdat de bewerking is voltooid.
Hoewel deze is bedoeld voor verbindingsgeoriënteerde protocollen, BeginSendFile werkt dit ook voor verbindingsloze protocollen, mits u eerst de Connect of BeginConnect methode aanroept om een standaard externe host tot stand te brengen. Met verbindingsloze protocollen moet u ervoor zorgen dat de grootte van uw bestand niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dit het geval is, wordt het datagram niet verzonden en BeginSendFile wordt er een SocketException uitzondering gegenereerd.
Note
Als u een SocketException uitzondering ontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.