Socket.BeginConnect 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.
Inicia um pedido assíncrono para uma ligação remota ao host.
Sobrecargas
| Name | Description |
|---|---|
| BeginConnect(EndPoint, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. |
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um IPAddress e um número de porta. |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um IPAddress array e um número de porta. |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um nome de host e um número de porta. |
BeginConnect(EndPoint, AsyncCallback, Object)
Inicia um pedido assíncrono para uma ligação remota ao host.
public:
IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- callback
- AsyncCallback
O AsyncCallback delegado.
- state
- Object
Um objeto que contém informação de estado para este pedido.
Devoluções
E IAsyncResult que faz referência à ligação assíncrona.
Exceções
remoteEP é null.
Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket.
O Socket local foi encerrado.
Um chamador mais acima na pilha de chamadas não tem permissão para a operação solicitada.
O Socket foi colocado num estado de escuta ao chamar Listen(Int32), ou uma operação assíncrona já está em curso.
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 .
Os protocolos orientados à ligação podem usar o BeginAccept método para começar a aceitar tentativas de ligação recebidas. A operação de aceitação resultante é representada pelo retornado IAsyncResult , mesmo que possa ser concluído de forma síncrona. Antes de chamar o BeginAccept método, deve chamá-lo Listen para ouvir e colocar em fila os pedidos de ligação recebidos.
Podes passar um callback que implementa AsyncCallback para BeginAccept seres notificado sobre a conclusão da operação de aceitação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback pode ser executado em linha, durante a chamada para BeginAccept. 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 BeginAccept método.
A BeginAccept operação deve ser realizada chamando o EndAccept método. Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndAccept irá bloquear o thread que chama até que a operação seja concluída.
Para cancelar uma chamada pendente para o BeginAccept método, feche o Socket. Quando o Close método é chamado enquanto uma operação assíncrona está em curso, o callback fornecido ao BeginAccept método é chamado. Uma chamada subsequente ao método EndAccept lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Note
Pode usar a RemoteEndPoint propriedade do retornado Socket para identificar o endereço de rede e o número de porta do host remoto.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
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
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono
Aplica-se a
BeginConnect(IPAddress, Int32, AsyncCallback, Object)
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um IPAddress e um número de porta.
public:
IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- port
- Int32
O número de porta do host remoto.
- requestCallback
- AsyncCallback
Um AsyncCallback delegado que faz referência ao método a invocar quando a operação de ligação estiver concluída.
- state
- Object
Um objeto definido pelo utilizador que contém informação sobre a operação de ligação. Este objeto é passado ao requestCallback delegado quando a operação está concluída.
Devoluções
E IAsyncResult que faz referência à ligação assíncrona.
Exceções
address é null.
Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket.
O Socket local foi encerrado.
Não Socket pertence à família dos soquetes.
O número de porta não é válido.
O comprimento de address é zero.
O Socket foi colocado num estado de escuta ao chamar Listen(Int32), ou uma operação assíncrona já está em curso.
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 .
Se estiver a usar um protocolo orientado à ligação, o BeginConnect método inicia um pedido assíncrono para uma ligação ao endpoit especificado pelo remoteEP parâmetro. Se estiveres a usar um protocolo sem conexão, BeginConnect estabelece um host remoto predefinido.
Pode passar um callback que implementa AsyncCallback para BeginConnect ser notificado sobre a conclusão da operação de ligação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback pode ser executado em linha, durante a chamada para BeginConnect. 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 BeginConnect método.
A BeginConnect operação deve ser realizada chamando o EndConnect método. Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndConnect irá bloquear o thread que chama até que a operação seja concluída.
Se estiver a usar um protocolo sem ligação como o UDP, não precisa de ligar BeginConnect antes de enviar e receber dados. Pode usar BeginSendTo e BeginReceiveFrom comunicar com um host remoto. Se ligar, BeginConnectquaisquer datagramas que cheguem de um endereço diferente do padrão especificado serão descartados. Se quiser definir o seu host remoto predefinido para um endereço de broadcast, deve primeiro ligar SetSocketOption e definir o Broadcast para true. Se não conseguires, BeginConnect vais lançar um SocketException.
Se estiver a usar um protocolo orientado à ligação e não ligar Bind antes de ligar BeginConnect, o fornecedor de serviço subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se estiver a usar um protocolo sem conexão, o fornecedor de serviços não atribuirá um endereço de rede local e um número de porta até que ligue para o BeginSend método ou ReceiveFrom . Se quiseres mudar o host remoto predefinido, chama o BeginConnect método novamente com o endpoint desejado.
Para cancelar uma chamada pendente para o BeginConnect método, feche o Socket. Quando o Close método é chamado enquanto uma operação assíncrona está em curso, o callback fornecido ao BeginConnect método é chamado. Uma chamada subsequente ao método EndConnect lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Se este soquete já foi desligado, então BeginConnect deve ser chamado numa thread que não sai até a operação estar concluída. Esta é uma limitação do fornecedor subjacente.
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
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono
Aplica-se a
BeginConnect(IPAddress[], Int32, AsyncCallback, Object)
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um IPAddress array e um número de porta.
public:
IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- port
- Int32
O número de porta do host remoto.
- requestCallback
- AsyncCallback
Um AsyncCallback delegado que faz referência ao método a invocar quando a operação de ligação estiver concluída.
- state
- Object
Um objeto definido pelo utilizador que contém informação sobre a operação de ligação. Este objeto é passado ao requestCallback delegado quando a operação está concluída.
Devoluções
E IAsyncResult que faz referência às ligações assíncronas.
Exceções
addresses é null.
Apenas framework .NET: Ocorreu um erro ao tentar aceder ao socket.
O Socket local foi encerrado.
Este método é válido para sockets que utilizam InterNetwork ou InterNetworkV6.
O número de porta não é válido.
O comprimento de addresses é zero.
O Socket foi colocado num estado de escuta ao chamar Listen(Int32), ou uma operação assíncrona já está em curso.
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 .
Se estiver a usar um protocolo orientado à ligação, o BeginConnect método inicia um pedido assíncrono para uma ligação ao endpoit especificado pelo remoteEP parâmetro. Se estiveres a usar um protocolo sem conexão, BeginConnect estabelece um host remoto predefinido.
Pode passar um callback que implementa AsyncCallback para BeginConnect ser notificado sobre a conclusão da operação de ligação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback pode ser executado em linha, durante a chamada para BeginConnect. 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 BeginConnect método.
A BeginConnect operação deve ser realizada chamando o EndConnect método. Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndConnect irá bloquear o thread que chama até que a operação seja concluída.
Se estiver a usar um protocolo sem ligação como o UDP, não precisa de ligar BeginConnect antes de enviar e receber dados. Pode usar BeginSendTo e BeginReceiveFrom comunicar com um host remoto. Se ligar, BeginConnectquaisquer datagramas que cheguem de um endereço diferente do padrão especificado serão descartados. Se quiser definir o seu host remoto predefinido para um endereço de broadcast, deve primeiro ligar SetSocketOption e definir o Broadcast para true. Se não conseguires, BeginConnect vais lançar um SocketException.
Se estiver a usar um protocolo orientado à ligação e não ligar Bind antes de ligar BeginConnect, o fornecedor de serviço subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se estiver a usar um protocolo sem conexão, o fornecedor de serviços não atribuirá um endereço de rede local e um número de porta até que ligue para o BeginSend método ou ReceiveFrom . Se quiseres mudar o host remoto predefinido, chama o BeginConnect método novamente com o endpoint desejado.
Para cancelar uma chamada pendente para o BeginConnect método, feche o Socket. Quando o Close método é chamado enquanto uma operação assíncrona está em curso, o callback fornecido ao BeginConnect método é chamado. Uma chamada subsequente ao método EndConnect lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Se este soquete já foi desligado, então BeginConnect deve ser chamado numa thread que não sai até a operação estar concluída. Esta é uma limitação do fornecedor subjacente.
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
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono
Aplica-se a
BeginConnect(String, Int32, AsyncCallback, Object)
Inicia um pedido assíncrono para uma ligação remota ao host. O host é especificado por um nome de host e um número de porta.
public:
IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(string host, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (host As String, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- host
- String
O nome do anfitrião remoto.
- port
- Int32
O número de porta do host remoto.
- requestCallback
- AsyncCallback
Um AsyncCallback delegado que faz referência ao método a invocar quando a operação de ligação estiver concluída.
- state
- Object
Um objeto definido pelo utilizador que contém informação sobre a operação de ligação. Este objeto é passado ao requestCallback delegado quando a operação está concluída.
Devoluções
E IAsyncResult que faz referência à ligação assíncrona.
Exceções
host é null.
O Socket local foi encerrado.
Este método é válido para soquetes nas InterNetwork famílias de ou.InterNetworkV6
O número de porta não é válido.
O Socket foi colocado num estado de escuta ao chamar Listen(Int32), ou uma operação assíncrona já está em curso.
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 .
Se estiver a usar um protocolo orientado à ligação, o BeginConnect método inicia um pedido assíncrono para uma ligação ao endpoit especificado pelo remoteEP parâmetro. Se estiveres a usar um protocolo sem conexão, BeginConnect estabelece um host remoto predefinido.
Pode passar um callback que implementa AsyncCallback para BeginConnect ser notificado sobre a conclusão da operação de ligação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback pode ser executado em linha, durante a chamada para BeginConnect. 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 BeginConnect método.
A BeginConnect operação deve ser realizada chamando o EndConnect método. Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndConnect irá bloquear o thread que chama até que a operação seja concluída.
Se estiver a usar um protocolo sem ligação como o UDP, não precisa de ligar BeginConnect antes de enviar e receber dados. Pode usar BeginSendTo e BeginReceiveFrom comunicar com um host remoto. Se ligar, BeginConnectquaisquer datagramas que cheguem de um endereço diferente do padrão especificado serão descartados. Se quiser definir o seu host remoto predefinido para um endereço de broadcast, deve primeiro ligar SetSocketOption e definir o Broadcast para true. Se não conseguires, BeginConnect vais lançar um SocketException.
Se estiver a usar um protocolo orientado à ligação e não ligar Bind antes de ligar BeginConnect, o fornecedor de serviço subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se estiver a usar um protocolo sem conexão, o fornecedor de serviços não atribuirá um endereço de rede local e um número de porta até que ligue para o BeginSend método ou ReceiveFrom . Se quiseres mudar o host remoto predefinido, chama o BeginConnect método novamente com o endpoint desejado.
Para cancelar uma chamada pendente para o BeginConnect método, feche o Socket. Quando o Close método é chamado enquanto uma operação assíncrona está em curso, o callback fornecido ao BeginConnect método é chamado. Uma chamada subsequente ao método EndConnect lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Se este soquete já foi desligado, então BeginConnect deve ser chamado numa thread que não sai até a operação estar concluída. Esta é uma limitação do fornecedor subjacente.
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
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Organizar um Delegado como Método de Retorno
- Exemplo de Soquete Cliente Assíncrono
- Exemplo de Soquete de Servidor Assíncrono