Socket.BeginSendFile Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Envoie un fichier de manière asynchrone à un objet connecté Socket .
Surcharges
| Nom | Description |
|---|---|
| BeginSendFile(String, AsyncCallback, Object) |
Envoie le fichier |
| BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object) |
Envoie un fichier et des mémoires tampons de données de manière asynchrone à un objet connecté Socket . |
BeginSendFile(String, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envoie le fichier fileName à un objet connecté Socket à l’aide de l’indicateur UseDefaultWorkerThread .
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
Paramètres
- fileName
- String
Chaîne qui contient le chemin d’accès et le nom du fichier à envoyer. Ce paramètre peut être null.
- callback
- AsyncCallback
Délégué AsyncCallback .
- state
- Object
Objet qui contient des informations d’état pour cette requête.
Retours
Objet IAsyncResult qui représente l’envoi asynchrone.
Exceptions
L’objet Socket a été fermé.
Le socket n’est pas connecté à un hôte distant.
Le fichier fileName est introuvable.
.NET Framework et .NET 5 et versions antérieures uniquement : une erreur s’est produite lors de la tentative d’accès au socket. Consultez la section remarques ci-dessous.
Remarques
Important
Il s’agit d’une API de compatibilité. Nous vous déconseillons d’utiliser les méthodes APM (Begin* et End*) pour le nouveau développement. Utilisez plutôt les Taskéquivalents basés sur les valeurs.
Cette surcharge envoie le fichier fileName sur le socket. S’il fileName se trouve dans le répertoire local, il peut être identifié uniquement avec le nom du fichier ; sinon, le chemin d’accès complet et le nom du fichier doivent être spécifiés. Caractères génériques (".. \\myfile.txt« ) et les noms de partage UNC (« \\\\répertoire partagé\\myfile.txt») sont pris en charge. Si le fichier est introuvable, l’exception FileNotFoundException est levée.
Vous pouvez passer un rappel qui s’implémente AsyncCallbackBeginSendFile pour être informé de l’achèvement de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de façon synchrone, le rappel est exécuté en ligne, pendant l’appel à BeginSendFile. Dans ce cas, la CompletedSynchronously propriété sur le retour IAsyncResult sera définie pour true indiquer que la méthode s’est terminée de façon synchrone. Utilisez la AsyncState propriété de l’objet IAsyncResult d’état passé à la BeginSendFile méthode.
L’opération BeginSendFile doit être effectuée en appelant la EndSendFile méthode. En règle générale, la méthode est appelée par le AsyncCallback délégué. EndSendFile bloque le thread appelant jusqu’à ce que l’opération soit terminée.
Bien que prévu pour les protocoles orientés connexion, BeginSendFile fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la ou BeginConnect la Connect méthode pour établir un hôte distant par défaut. Avec les protocoles sans connexion, vous devez vous assurer que la taille de votre fichier ne dépasse pas la taille maximale des paquets du fournisseur de services sous-jacent. Si c’est le cas, le datagramme n’est pas envoyé et BeginSendFile lève une SocketException exception.
Note
Si vous recevez une SocketException exception, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.
Note
Ce membre génère des informations de suivi lorsque vous activez le suivi réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
Note
Le contexte d’exécution (le contexte de sécurité, l’utilisateur emprunt d’identité et le contexte appelant) est mis en cache pour les méthodes asynchrones Socket . Après la première utilisation d’un contexte particulier (une méthode asynchrone Socket spécifique, une instance spécifique et un rappel spécifique Socket ), les utilisations suivantes de ce contexte verront une amélioration des performances.
S’applique à
BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envoie un fichier et des mémoires tampons de données de manière asynchrone à un objet connecté Socket .
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
Paramètres
- fileName
- String
Chaîne qui contient le chemin d’accès et le nom du fichier à envoyer. Ce paramètre peut être null.
- preBuffer
- Byte[]
Données à envoyer avant l’envoi du fichier. Ce paramètre peut être null.
- postBuffer
- Byte[]
Données à envoyer après l’envoi du fichier. Ce paramètre peut être null.
- flags
- TransmitFileOptions
Combinaison au niveau du bit des valeurs d’énumération.
- callback
- AsyncCallback
Délégué AsyncCallback à appeler une fois cette opération terminée. Ce paramètre peut être null.
- state
- Object
Objet défini par l’utilisateur qui contient des informations d’état pour cette requête. Ce paramètre peut être null.
Retours
Objet IAsyncResult qui représente l’opération asynchrone.
Exceptions
L’objet Socket a été fermé.
.NET Framework et .NET 5 et versions antérieures uniquement : une erreur s’est produite lors de la tentative d’accès au socket. Consultez la section remarques ci-dessous.
Le système d’exploitation n’est pas Windows NT ou version ultérieure.
- ou -
Le socket n’est pas connecté à un hôte distant.
Le fichier fileName est introuvable.
Remarques
Important
Il s’agit d’une API de compatibilité. Nous vous déconseillons d’utiliser les méthodes APM (Begin* et End*) pour le nouveau développement. Utilisez plutôt les Taskéquivalents basés sur les valeurs.
Cette surcharge nécessite le nom du fichier que vous souhaitez envoyer et une combinaison TransmitFileOptions de valeurs au niveau du bit. Le preBuffer paramètre contient toutes les données que vous souhaitez précéder du fichier.
postBuffer contient des données que vous souhaitez suivre le fichier. S’il fileName se trouve dans le répertoire local, il peut être identifié uniquement avec le nom du fichier ; sinon, le chemin d’accès complet et le nom du fichier doivent être spécifiés. Caractères génériques (".. \\myfile.txt« ) et les noms de partage UNC (« \\\\répertoire partagé\\myfile.txt») sont pris en charge. Si le fichier est introuvable, l’exception FileNotFoundException est levée.
Le flags paramètre fournit des informations supplémentaires sur le transfert de fichiers. Pour plus d’informations sur l’utilisation de ce paramètre, consultez TransmitFileOptions.
Vous pouvez passer un rappel qui s’implémente AsyncCallbackBeginSendFile pour être informé de l’achèvement de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de façon synchrone, le rappel est exécuté en ligne, pendant l’appel à BeginSendFile. Dans ce cas, la CompletedSynchronously propriété sur le retour IAsyncResult sera définie pour true indiquer que la méthode s’est terminée de façon synchrone. Utilisez la AsyncState propriété de l’objet IAsyncResult d’état passé à la BeginSendFile méthode.
L’opération BeginSendFile doit être effectuée en appelant la EndSendFile méthode. En règle générale, la méthode est appelée par le délégué fourni AsyncCallback . EndSendFile bloque le thread appelant jusqu’à ce que l’opération soit terminée.
Bien que prévu pour les protocoles orientés connexion, BeginSendFile fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la ou BeginConnect la Connect méthode pour établir un hôte distant par défaut. Avec les protocoles sans connexion, vous devez vous assurer que la taille de votre fichier ne dépasse pas la taille maximale des paquets du fournisseur de services sous-jacent. Si c’est le cas, le datagramme n’est pas envoyé et BeginSendFile lève une SocketException exception.
Note
Si vous recevez une SocketException exception, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.
Note
Ce membre génère des informations de suivi lorsque vous activez le suivi réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
Note
Le contexte d’exécution (le contexte de sécurité, l’utilisateur emprunt d’identité et le contexte appelant) est mis en cache pour les méthodes asynchrones Socket . Après la première utilisation d’un contexte particulier (une méthode asynchrone Socket spécifique, une instance spécifique et un rappel spécifique Socket ), les utilisations suivantes de ce contexte verront une amélioration des performances.