Partager via


Socket.BeginSendFile Méthode

Définition

Envoie un fichier de manière asynchrone à un objet connecté Socket .

Surcharges

Nom Description
BeginSendFile(String, AsyncCallback, Object)

Envoie le fichier fileName à un objet connecté Socket à l’aide de l’indicateur UseDefaultWorkerThread .

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.

S’applique à