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 façon asynchrone à un objet Socket connecté.
Surcharges
BeginSendFile(String, AsyncCallback, Object) |
Envoie le fichier |
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.