Partager via


Socket.BeginSendFile Méthode

Définition

Envoie un fichier de façon asynchrone à un objet Socket connecté.

Surcharges

BeginSendFile(String, AsyncCallback, Object)

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

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

Envoie de façon asynchrone un fichier et des mémoires tampon de données à un objet Socket connecté.

BeginSendFile(String, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Envoie le fichier fileName à un objet Socket connecté à 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 les informations d’état de cette demande.

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 Notes 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. Au lieu de cela, utilisez les Taskéquivalents basés sur la base.

Cette surcharge envoie le fichier fileName sur le socket. Si fileName se trouve dans le répertoire local, il peut être identifié uniquement par 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 (« \\\\shared directory\\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 à afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel sera exécuté en ligne, pendant l’appel à BeginSendFile. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult sera définie sur pour true indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de IAsyncResult pour obtenir l’objet d’état passé à la BeginSendFile méthode .

L’opération BeginSendFile doit être terminé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 destiné aux protocoles orientés connexion, BeginSendFile fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la Connect méthode ou BeginConnect 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 de paquet maximale du fournisseur de services sous-jacent. Si c’est le cas, le datagramme n’est pas envoyé et BeginSendFile lève une SocketException exception.

Notes

Si vous recevez une SocketException exception, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.

Notes

Le contexte d’exécution (le contexte de sécurité, l’utilisateur usurpé 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, un instance spécifique Socket et un rappel spécifique), les utilisations ultérieures de ce contexte voient une amélioration des performances.

S’applique à

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Envoie de façon asynchrone un fichier et des mémoires tampon de données à un objet Socket connecté.

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 d'opérations de bits 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 contenant les informations d'état de cette demande. 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 Notes ci-dessous.

Le système d'exploitation n'est pas Windows NT ou une 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. Au lieu de cela, utilisez les Taskéquivalents basés sur la base.

Cette surcharge nécessite le nom du fichier que vous souhaitez envoyer et une combinaison de valeurs au niveau du TransmitFileOptions bit. Le preBuffer paramètre contient toutes les données que vous souhaitez précéder du fichier. postBuffer contient les données que vous souhaitez suivre le fichier. Si fileName se trouve dans le répertoire local, il peut être identifié uniquement par 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 (« \\\\shared directory\\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 à afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel sera exécuté en ligne, pendant l’appel à BeginSendFile. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult sera définie sur pour true indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de IAsyncResult pour obtenir l’objet d’état passé à la BeginSendFile méthode .

L’opération BeginSendFile doit être terminé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 destiné aux protocoles orientés connexion, BeginSendFile fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la Connect méthode ou BeginConnect 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 de paquet maximale du fournisseur de services sous-jacent. Si c’est le cas, le datagramme n’est pas envoyé et BeginSendFile lève une SocketException exception.

Notes

Si vous recevez une SocketException exception, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.

Notes

Le contexte d’exécution (le contexte de sécurité, l’utilisateur usurpé 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, un instance spécifique Socket et un rappel spécifique), les utilisations ultérieures de ce contexte voient une amélioration des performances.

S’applique à