Socket.BeginSend Método

Definição

Envia dados assíncronos para um .Socket

Sobrecargas

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

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

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

buffer
Byte[]

Um array de tipo Byte que contém os dados a enviar.

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

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

buffer
Byte[]

Um array de tipo Byte que contém os dados a enviar.

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

Aplica-se a