Socket.BeginSend Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Envia dados assíncronos para um .Socket
Sobrecargas
| Name | Description |
|---|---|
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
| BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
| BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Envia dados assíncronos para um .Socket |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
Envia dados assíncronos para um .Socket
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- buffers
- IList<ArraySegment<Byte>>
Um array de tipo Byte que contém os dados a enviar.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
- callback
- AsyncCallback
O AsyncCallback delegado.
- state
- Object
Um objeto que contém informação de estado para este pedido.
Devoluções
E isso faz IAsyncResult referência ao envio assíncrono.
Exceções
buffers é null.
buffers está vazio.
Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket. Consulte a secção de observações abaixo.
O Socket local foi encerrado.
Observações
Importante
Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Begin* e End*) para novos desenvolvimentos. Em vez disso, use os Taskequivalentes baseados em .
Pode enviar um callback que implementa AsyncCallback para BeginSend ser notificado sobre a conclusão da operação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback será executado em linha, durante a chamada para BeginSend. Neste caso, a CompletedSynchronously propriedade no retorno IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade de para IAsyncResult obter o objeto de estado passado para o BeginSend método.
A operação assíncrona BeginSend deve ser concluída chamando o EndSend método. Normalmente, o método é invocado pelo AsyncCallback delegado. EndSend irá bloquear o thread que chama até que a operação seja concluída.
Embora destinado a protocolos orientados a conexão, BeginSend também funciona para protocolos sem conexão, desde que primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto predefinido. Se estiver a usar um protocolo sem ligação e planeia enviar dados para vários hosts diferentes, deve usar BeginSendTo. É aceitável usar BeginSendTo mesmo depois de ter estabelecido um host remoto por defeito com Connect. Também pode alterar o host remoto predefinido antes de ligar BeginSend , fazendo outra chamada para Connect ou BeginConnect. Com protocolos sem conexão, deve também garantir que o tamanho do seu buffer não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e BeginSend irá lançar um SocketException.
Se especificar o DontRoute flag como parâmetro socketflags , os dados que está a enviar não serão encaminhados.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Todas as E/S iniciadas por uma dada thread são canceladas quando essa thread sai. Uma operação assíncrona pendente pode falhar se a thread sair antes da operação terminar.
Note
state é uma instância de uma classe definida pelo utilizador.
Note
A conclusão bem-sucedida de um envio não indica que os dados foram entregues com sucesso. Se não houver espaço de buffer disponível dentro do sistema de transporte para armazenar os dados a transmitir, enviar irá bloquear, a menos que o socket tenha sido colocado em modo não bloqueante.
Note
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.
Note
O contexto de execução (o contexto de segurança, o utilizador personificado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após a primeira utilização de um determinado contexto (um método assíncrono Socket específico, uma instância específica Socket e um callback específico), as utilizações subsequentes desse contexto verão uma melhoria de desempenho.
Ver também
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono
Aplica-se a
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
Envia dados assíncronos para um .Socket
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- buffers
- IList<ArraySegment<Byte>>
Um array de tipo Byte que contém os dados a enviar.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
- errorCode
- SocketError
Um SocketError objeto que armazena o erro do soquete.
- callback
- AsyncCallback
O AsyncCallback delegado.
- state
- Object
Um objeto que contém informação de estado para este pedido.
Devoluções
E isso faz IAsyncResult referência ao envio assíncrono.
Exceções
buffers é null.
buffers está vazio.
Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket. Consulte a secção de observações abaixo.
O Socket local foi encerrado.
Observações
Importante
Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Begin* e End*) para novos desenvolvimentos. Em vez disso, use os Taskequivalentes baseados em .
Pode enviar um callback que implementa AsyncCallback para BeginSend ser notificado sobre a conclusão da operação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback será executado em linha, durante a chamada para BeginSend. Neste caso, a CompletedSynchronously propriedade no retorno IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade de para IAsyncResult obter o objeto de estado passado para o BeginSend método.
A operação assíncrona BeginSend deve ser concluída chamando o EndSend método. Normalmente, o método é invocado pelo AsyncCallback delegado. EndSend irá bloquear o thread que chama até que a operação seja concluída.
Embora destinado a protocolos orientados a conexão, BeginSend também funciona para protocolos sem conexão, desde que primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto predefinido. Se estiver a usar um protocolo sem ligação e planeia enviar dados para vários hosts diferentes, deve usar BeginSendTo. É aceitável usar BeginSendTo mesmo depois de ter estabelecido um host remoto por defeito com Connect. Também pode alterar o host remoto predefinido antes de ligar BeginSend , fazendo outra chamada para Connect ou BeginConnect. Com protocolos sem conexão, deve também garantir que o tamanho do seu buffer não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e BeginSend irá lançar um SocketException.
Se especificar o DontRoute flag como parâmetro socketflags , os dados que está a enviar não serão encaminhados.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Todas as E/S iniciadas por uma dada thread são canceladas quando essa thread sai. Uma operação assíncrona pendente pode falhar se a thread sair antes da operação terminar.
Note
state é uma instância de uma classe definida pelo utilizador.
Note
A conclusão bem-sucedida de um envio não indica que os dados foram entregues com sucesso. Se não houver espaço de buffer disponível dentro do sistema de transporte para armazenar os dados a transmitir, enviar irá bloquear, a menos que o socket tenha sido colocado em modo não bloqueante.
Note
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.
Note
O contexto de execução (o contexto de segurança, o utilizador personificado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após a primeira utilização de um determinado contexto (um método assíncrono Socket específico, uma instância específica Socket e um callback específico), as utilizações subsequentes desse contexto verão uma melhoria de desempenho.
Ver também
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono
Aplica-se a
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
Envia dados assíncronos para um .Socket
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- offset
- Int32
A posição baseada em zero no buffer parâmetro onde começar a enviar dados.
- size
- Int32
O número de bytes a enviar.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
- callback
- AsyncCallback
O AsyncCallback delegado.
- state
- Object
Um objeto que contém informação de estado para este pedido.
Devoluções
E isso faz IAsyncResult referência ao envio assíncrono.
Exceções
buffer é null.
Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket. Consulte a secção de observações abaixo.
offset é inferior a 0.
-ou-
offset é menor que o comprimento de buffer.
-ou-
size é inferior a 0.
-ou-
size é maior do que o comprimento de buffer menos o valor do offset parâmetro.
O Socket local foi encerrado.
Observações
Importante
Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Begin* e End*) para novos desenvolvimentos. Em vez disso, use os Taskequivalentes baseados em .
Pode enviar um callback que implementa AsyncCallback para BeginSend ser notificado sobre a conclusão da operação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback será executado em linha, durante a chamada para BeginSend. Neste caso, a CompletedSynchronously propriedade no retorno IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade de para IAsyncResult obter o objeto de estado passado para o BeginSend método.
A operação assíncrona BeginSend deve ser concluída chamando o EndSend método. Normalmente, o método é invocado pelo AsyncCallback delegado. EndSend irá bloquear o thread que chama até que a operação seja concluída.
Embora destinado a protocolos orientados a conexão, BeginSend também funciona para protocolos sem conexão, desde que primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto predefinido. Se estiver a usar um protocolo sem ligação e planeia enviar dados para vários hosts diferentes, deve usar BeginSendTo. É aceitável usar BeginSendTo mesmo depois de ter estabelecido um host remoto por defeito com Connect. Também pode alterar o host remoto predefinido antes de ligar BeginSend , fazendo outra chamada para Connect ou BeginConnect. Com protocolos sem conexão, deve também garantir que o tamanho do seu buffer não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e BeginSend irá lançar um SocketException.
Se especificar o DontRoute flag como parâmetro socketflags , os dados que está a enviar não serão encaminhados.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Todas as E/S iniciadas por uma dada thread são canceladas quando essa thread sai. Uma operação assíncrona pendente pode falhar se a thread sair antes da operação terminar.
Note
state é uma instância de uma classe definida pelo utilizador.
Note
A conclusão bem-sucedida de um envio não indica que os dados foram entregues com sucesso. Se não houver espaço de buffer disponível dentro do sistema de transporte para armazenar os dados a transmitir, enviar irá bloquear, a menos que o socket tenha sido colocado em modo não bloqueante.
Note
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.
Note
O contexto de execução (o contexto de segurança, o utilizador personificado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após a primeira utilização de um determinado contexto (um método assíncrono Socket específico, uma instância específica Socket e um callback específico), as utilizações subsequentes desse contexto verão uma melhoria de desempenho.
Ver também
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono
Aplica-se a
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
Envia dados assíncronos para um .Socket
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- offset
- Int32
A posição baseada em zero no buffer parâmetro onde começar a enviar dados.
- size
- Int32
O número de bytes a enviar.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
- errorCode
- SocketError
Um SocketError objeto que armazena o erro do soquete.
- callback
- AsyncCallback
O AsyncCallback delegado.
- state
- Object
Um objeto que contém informação de estado para este pedido.
Devoluções
E isso faz IAsyncResult referência ao envio assíncrono.
Exceções
buffer é null.
Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket. Consulte a secção de observações abaixo.
offset é inferior a 0.
-ou-
offset é menor que o comprimento de buffer.
-ou-
size é inferior a 0.
-ou-
size é maior do que o comprimento de buffer menos o valor do offset parâmetro.
O Socket local foi encerrado.
Observações
Importante
Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Begin* e End*) para novos desenvolvimentos. Em vez disso, use os Taskequivalentes baseados em .
Pode enviar um callback que implementa AsyncCallback para BeginSend ser notificado sobre a conclusão da operação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback será executado em linha, durante a chamada para BeginSend. Neste caso, a CompletedSynchronously propriedade no retorno IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade de para IAsyncResult obter o objeto de estado passado para o BeginSend método.
A operação assíncrona BeginSend deve ser concluída chamando o EndSend método. Normalmente, o método é invocado pelo AsyncCallback delegado. EndSend irá bloquear o thread que chama até que a operação seja concluída.
Embora destinado a protocolos orientados a conexão, BeginSend também funciona para protocolos sem conexão, desde que primeiro chame o Connect método ou BeginConnect para estabelecer um host remoto predefinido. Se estiver a usar um protocolo sem ligação e planeia enviar dados para vários hosts diferentes, deve usar BeginSendTo. É aceitável usar BeginSendTo mesmo depois de ter estabelecido um host remoto por defeito com Connect. Também pode alterar o host remoto predefinido antes de ligar BeginSend , fazendo outra chamada para Connect ou BeginConnect. Com protocolos sem conexão, deve também garantir que o tamanho do seu buffer não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e BeginSend irá lançar um SocketException.
Se especificar o DontRoute flag como parâmetro socketflags , os dados que está a enviar não serão encaminhados.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Todas as E/S iniciadas por uma dada thread são canceladas quando essa thread sai. Uma operação assíncrona pendente pode falhar se a thread sair antes da operação terminar.
Note
state é uma instância de uma classe definida pelo utilizador.
Note
A conclusão bem-sucedida de um envio não indica que os dados foram entregues com sucesso. Se não houver espaço de buffer disponível dentro do sistema de transporte para armazenar os dados a transmitir, enviar irá bloquear, a menos que o socket tenha sido colocado em modo não bloqueante.
Note
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.
Note
O contexto de execução (o contexto de segurança, o utilizador personificado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após a primeira utilização de um determinado contexto (um método assíncrono Socket específico, uma instância específica Socket e um callback específico), as utilizações subsequentes desse contexto verão uma melhoria de desempenho.
Ver também
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono