Socket.BeginConnect Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicia uma solicitação assíncrona para uma conexão de host remoto.
Sobrecargas
BeginConnect(EndPoint, AsyncCallback, Object) |
Inicia uma solicitação assíncrona para uma conexão de host remoto. |
BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por um IPAddress e um número da porta. |
BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por uma matriz IPAddress e um número da porta. |
BeginConnect(String, Int32, AsyncCallback, Object) |
Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por um nome do host e um número da porta. |
BeginConnect(EndPoint, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Inicia uma solicitação assíncrona para uma conexão de host remoto.
public:
IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.EndPoint remoteEP, AsyncCallback? callback, 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 delegado AsyncCallback.
- state
- Object
Um objeto que contém informações de estado para essa solicitação.
Retornos
Um IAsyncResult que faz referência à conexão assíncrona.
Exceções
remoteEP
é null
.
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
Um chamador mais alto na pilha de chamadas não tem permissão para a operação solicitada.
O Socket foi colocado em um estado de escuta chamando Listen(Int32) ou uma operação assíncrona já está em andamento.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Os protocolos orientados à conexão podem usar o BeginAccept método para começar a aceitar tentativas de conexão de entrada. A operação de aceitação resultante é representada pelo retornado IAsyncResult , embora possa ser concluída de forma síncrona. Antes de chamar o BeginAccept método , você deve chamar o Listen método para escutar e enfileirar solicitações de conexão de entrada.
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginAccept ser notificado sobre a conclusão da operação de aceitação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada poderá ser executado embutido durante a chamada para BeginAccept. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true
para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginAccept método .
A BeginAccept operação deve ser concluída chamando o EndAccept método . Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndAccept bloqueará o thread de chamada 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 andamento, o retorno de chamada fornecido ao BeginAccept método é chamado. Uma chamada subsequente para o EndAccept método lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Você pode usar a RemoteEndPoint propriedade do retornado Socket para identificar o endereço de rede e o número da porta do host remoto.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.
Observação
O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono
Aplica-se a
BeginConnect(IPAddress, Int32, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por um IPAddress e um número da 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);
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 da porta do host remoto.
- requestCallback
- AsyncCallback
Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação de conexão for concluída.
- state
- Object
Um objeto definido pelo usuário que contém informações sobre a operação de conexão. Esse objeto é passado para o delegado requestCallback
quando a operação é concluída.
Retornos
Um IAsyncResult que faz referência à conexão assíncrona.
Exceções
address
é null
.
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
O Socket não está na família do soquete.
O número da porta é inválido.
O comprimento de address
é zero.
O Socket foi colocado em um estado de escuta chamando Listen(Int32) ou uma operação assíncrona já está em andamento.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Se você estiver usando um protocolo orientado à conexão, o BeginConnect método iniciará uma solicitação assíncrona para uma conexão com o endpoit especificado pelo remoteEP
parâmetro . Se você estiver usando um protocolo sem conexão, BeginConnect estabelecerá um host remoto padrão.
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginConnect ser notificado sobre a conclusão da operação de conexão. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada poderá ser executado embutido durante a chamada para BeginConnect. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true
para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginConnect método .
A BeginConnect operação deve ser concluída chamando o EndConnect método . Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndConnect bloqueará o thread de chamada até que a operação seja concluída.
Se você estiver usando um protocolo sem conexão, como UDP, não precisará chamar BeginConnect antes de enviar e receber dados. Você pode usar BeginSendTo e BeginReceiveFrom para se comunicar com um host remoto. Se você chamar BeginConnect, todos os datagramas que chegarem de um endereço diferente do padrão especificado serão descartados. Se você quiser definir o host remoto padrão como um endereço de transmissão, primeiro chame SetSocketOption e defina Difusão como true
. Se você não puder, BeginConnect lançará um SocketException.
Se você estiver usando um protocolo orientado à conexão e não chamar Bind antes de chamar BeginConnect, o provedor de serviços subjacente atribuirá o endereço de rede local e o número da porta mais apropriados. Se você estiver usando um protocolo sem conexão, o provedor de serviços não atribuirá um endereço de rede local e um número de porta até que você chame o BeginSend método ou ReceiveFrom . Se você quiser alterar o host remoto padrão, chame o BeginConnect método novamente com o ponto de extremidade 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 andamento, o retorno de chamada fornecido ao BeginConnect método é chamado. Uma chamada subsequente para o EndConnect método lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Se esse soquete tiver sido desconectado anteriormente, deverá BeginConnect ser chamado em um thread que não sairá até que a operação seja concluída. Essa é uma limitação do provedor subjacente.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.
Observação
O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono
Aplica-se a
BeginConnect(IPAddress[], Int32, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por uma matriz IPAddress e um número da 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);
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 da porta do host remoto.
- requestCallback
- AsyncCallback
Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação de conexão for concluída.
- state
- Object
Um objeto definido pelo usuário que contém informações sobre a operação de conexão. Esse objeto é passado para o delegado requestCallback
quando a operação é concluída.
Retornos
Um IAsyncResult que faz referência a conexões assíncronas.
Exceções
addresses
é null
.
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
Este método é válido para soquetes que usam InterNetwork ou InterNetworkV6.
O número da porta é inválido.
O comprimento de address
é zero.
O Socket foi colocado em um estado de escuta chamando Listen(Int32) ou uma operação assíncrona já está em andamento.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Se você estiver usando um protocolo orientado à conexão, o BeginConnect método iniciará uma solicitação assíncrona para uma conexão com o endpoit especificado pelo remoteEP
parâmetro . Se você estiver usando um protocolo sem conexão, BeginConnect estabelecerá um host remoto padrão.
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginConnect ser notificado sobre a conclusão da operação de conexão. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada poderá ser executado embutido durante a chamada para BeginConnect. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true
para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginConnect método .
A BeginConnect operação deve ser concluída chamando o EndConnect método . Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndConnect bloqueará o thread de chamada até que a operação seja concluída.
Se você estiver usando um protocolo sem conexão, como UDP, não precisará chamar BeginConnect antes de enviar e receber dados. Você pode usar BeginSendTo e BeginReceiveFrom para se comunicar com um host remoto. Se você chamar BeginConnect, todos os datagramas que chegarem de um endereço diferente do padrão especificado serão descartados. Se você quiser definir o host remoto padrão como um endereço de transmissão, primeiro chame SetSocketOption e defina Difusão como true
. Se você não puder, BeginConnect lançará um SocketException.
Se você estiver usando um protocolo orientado à conexão e não chamar Bind antes de chamar BeginConnect, o provedor de serviços subjacente atribuirá o endereço de rede local e o número da porta mais apropriados. Se você estiver usando um protocolo sem conexão, o provedor de serviços não atribuirá um endereço de rede local e um número de porta até que você chame o BeginSend método ou ReceiveFrom . Se você quiser alterar o host remoto padrão, chame o BeginConnect método novamente com o ponto de extremidade 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 andamento, o retorno de chamada fornecido ao BeginConnect método é chamado. Uma chamada subsequente para o EndConnect método lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Se esse soquete tiver sido desconectado anteriormente, deverá BeginConnect ser chamado em um thread que não sairá até que a operação seja concluída. Essa é uma limitação do provedor subjacente.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.
Observação
O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono
Aplica-se a
BeginConnect(String, Int32, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Inicia uma solicitação assíncrona para uma conexão de host remoto. O host é especificado por um nome do host e um número da 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);
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 host remoto.
- port
- Int32
O número da porta do host remoto.
- requestCallback
- AsyncCallback
Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação de conexão for concluída.
- state
- Object
Um objeto definido pelo usuário que contém informações sobre a operação de conexão. Esse objeto é passado para o delegado requestCallback
quando a operação é concluída.
Retornos
Um IAsyncResult que faz referência à conexão assíncrona.
Exceções
host
é null
.
O Socket foi fechado.
Este método é válido para soquetes nas famílias InterNetwork ou InterNetworkV6 .
O número da porta é inválido.
O Socket foi colocado em um estado de escuta chamando Listen(Int32) ou uma operação assíncrona já está em andamento.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Se você estiver usando um protocolo orientado à conexão, o BeginConnect método iniciará uma solicitação assíncrona para uma conexão com o endpoit especificado pelo remoteEP
parâmetro . Se você estiver usando um protocolo sem conexão, BeginConnect estabelecerá um host remoto padrão.
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginConnect ser notificado sobre a conclusão da operação de conexão. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada poderá ser executado embutido durante a chamada para BeginConnect. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true
para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginConnect método .
A BeginConnect operação deve ser concluída chamando o EndConnect método . Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndConnect bloqueará o thread de chamada até que a operação seja concluída.
Se você estiver usando um protocolo sem conexão, como UDP, não precisará chamar BeginConnect antes de enviar e receber dados. Você pode usar BeginSendTo e BeginReceiveFrom para se comunicar com um host remoto. Se você chamar BeginConnect, todos os datagramas que chegarem de um endereço diferente do padrão especificado serão descartados. Se você quiser definir o host remoto padrão como um endereço de transmissão, primeiro chame SetSocketOption e defina Difusão como true
. Se você não puder, BeginConnect lançará um SocketException.
Se você estiver usando um protocolo orientado à conexão e não chamar Bind antes de chamar BeginConnect, o provedor de serviços subjacente atribuirá o endereço de rede local e o número da porta mais apropriados. Se você estiver usando um protocolo sem conexão, o provedor de serviços não atribuirá um endereço de rede local e um número de porta até que você chame o BeginSend método ou ReceiveFrom . Se você quiser alterar o host remoto padrão, chame o BeginConnect método novamente com o ponto de extremidade 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 andamento, o retorno de chamada fornecido ao BeginConnect método é chamado. Uma chamada subsequente para o EndConnect método lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Se esse soquete tiver sido desconectado anteriormente, BeginConnect deverá ser chamado em um thread que não será encerrado até que a operação seja concluída. Essa é uma limitação do provedor subjacente.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.
Observação
O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono