Socket.BeginSendFile Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Envía un archivo de forma asincrónica a un objeto conectado Socket .
Sobrecargas
| Nombre | Description |
|---|---|
| BeginSendFile(String, AsyncCallback, Object) |
Envía el archivo |
| BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object) |
Envía un archivo y búferes de datos de forma asincrónica a un objeto conectado Socket . |
BeginSendFile(String, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envía el archivo fileName a un objeto conectado Socket mediante la UseDefaultWorkerThread marca .
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
Parámetros
- fileName
- String
Cadena que contiene la ruta de acceso y el nombre del archivo que se va a enviar. Este parámetro puede ser null.
- callback
- AsyncCallback
Delegado AsyncCallback .
- state
- Object
Objeto que contiene información de estado para esta solicitud.
Devoluciones
Objeto IAsyncResult que representa el envío asincrónico.
Excepciones
El Socket objeto se ha cerrado.
El socket no está conectado a un host remoto.
No se encontró el archivo fileName .
.NET Framework y .NET 5 y versiones anteriores solo: se produjo un error al intentar acceder al socket. Consulte la sección de comentarios a continuación.
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos APM (Begin* y End*) para el nuevo desarrollo. En su lugar, use los Taskequivalentes basados en .
Esta sobrecarga envía el archivo fileName a través del socket. Si fileName está en el directorio local, se puede identificar con solo el nombre del archivo; de lo contrario, se debe especificar la ruta de acceso completa y el nombre del archivo. Caracteres comodín (".. \\myfile.txt") y los nombres de recursos compartidos UNC ("\\\\shared directory\\myfile.txt") son compatibles. Si no se encuentra el archivo, se produce la excepción FileNotFoundException .
Puede pasar una devolución de llamada que se AsyncCallbackBeginSendFile implemente en para recibir una notificación sobre la finalización de la operación. Tenga en cuenta que si la pila de red subyacente completa la operación de forma sincrónica, la devolución de llamada se ejecutará en línea, durante la llamada a BeginSendFile. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginSendFile método .
La BeginSendFile operación debe completarse llamando al EndSendFile método . Normalmente, el delegado invoca el AsyncCallback método . EndSendFile bloqueará el subproceso que realiza la llamada hasta que se complete la operación.
Aunque está pensado para protocolos orientados a la conexión, BeginSendFile también funciona para protocolos sin conexión, siempre que primero llame al Connect método o BeginConnect para establecer un host remoto predeterminado. Con los protocolos sin conexión, debe asegurarse de que el tamaño del archivo no supere el tamaño máximo del paquete del proveedor de servicios subyacente. Si es así, el datagrama no se envía y BeginSendFile produce una SocketException excepción.
Nota:
Si recibe una SocketException excepción, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
Nota:
Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.
Nota:
El contexto de ejecución (el contexto de seguridad, el usuario suplantado y el contexto de llamada) se almacena en caché para los métodos asincrónicos Socket . Después del primer uso de un contexto determinado (un método asincrónico Socket específico, una instancia específica Socket y una devolución de llamada específica), los usos posteriores de ese contexto verán una mejora del rendimiento.
Se aplica a
BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envía un archivo y búferes de datos de forma asincrónica a un objeto conectado 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
Parámetros
- fileName
- String
Cadena que contiene la ruta de acceso y el nombre del archivo que se va a enviar. Este parámetro puede ser null.
- preBuffer
- Byte[]
Los datos que se enviarán antes de enviar el archivo. Este parámetro puede ser null.
- postBuffer
- Byte[]
Los datos que se enviarán después de enviar el archivo. Este parámetro puede ser null.
- flags
- TransmitFileOptions
Combinación bit a bit de los valores de enumeración.
- callback
- AsyncCallback
Delegado AsyncCallback que se va a invocar cuando se completa esta operación. Este parámetro puede ser null.
- state
- Object
Objeto definido por el usuario que contiene información de estado para esta solicitud. Este parámetro puede ser null.
Devoluciones
Objeto IAsyncResult que representa la operación asincrónica.
Excepciones
El Socket objeto se ha cerrado.
.NET Framework y .NET 5 y versiones anteriores solo: se produjo un error al intentar acceder al socket. Consulte la sección de comentarios a continuación.
El sistema operativo no es Windows NT ni posterior.
O bien
El socket no está conectado a un host remoto.
No se encontró el archivo fileName .
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos APM (Begin* y End*) para el nuevo desarrollo. En su lugar, use los Taskequivalentes basados en .
Esta sobrecarga requiere el nombre del archivo que desea enviar y una combinación bit a bit de TransmitFileOptions valores. El preBuffer parámetro contiene los datos que desea preceder al archivo.
postBuffer contiene datos que desea seguir el archivo. Si fileName está en el directorio local, se puede identificar con solo el nombre del archivo; de lo contrario, se debe especificar la ruta de acceso completa y el nombre del archivo. Caracteres comodín (".. \\myfile.txt") y los nombres de recursos compartidos UNC ("\\\\shared directory\\myfile.txt") son compatibles. Si no se encuentra el archivo, se produce la excepción FileNotFoundException .
El flags parámetro proporciona información adicional sobre la transferencia de archivos. Para obtener más información sobre cómo usar este parámetro, vea TransmitFileOptions.
Puede pasar una devolución de llamada que se AsyncCallbackBeginSendFile implemente en para recibir una notificación sobre la finalización de la operación. Tenga en cuenta que si la pila de red subyacente completa la operación de forma sincrónica, la devolución de llamada se ejecutará en línea, durante la llamada a BeginSendFile. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginSendFile método .
La BeginSendFile operación debe completarse llamando al EndSendFile método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndSendFile bloqueará el subproceso que realiza la llamada hasta que se complete la operación.
Aunque está pensado para protocolos orientados a la conexión, BeginSendFile también funciona para protocolos sin conexión, siempre que primero llame al Connect método o BeginConnect para establecer un host remoto predeterminado. Con los protocolos sin conexión, debe asegurarse de que el tamaño del archivo no supere el tamaño máximo del paquete del proveedor de servicios subyacente. Si es así, el datagrama no se envía y BeginSendFile produce una SocketException excepción.
Nota:
Si recibe una SocketException excepción, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
Nota:
Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.
Nota:
El contexto de ejecución (el contexto de seguridad, el usuario suplantado y el contexto de llamada) se almacena en caché para los métodos asincrónicos Socket . Después del primer uso de un contexto determinado (un método asincrónico Socket específico, una instancia específica Socket y una devolución de llamada específica), los usos posteriores de ese contexto verán una mejora del rendimiento.