Socket.AcceptAsync Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| AcceptAsync() |
Accepte une connexion entrante. |
| AcceptAsync(Socket) |
Accepte une connexion entrante. |
| AcceptAsync(SocketAsyncEventArgs) |
Commence une opération asynchrone pour accepter une tentative de connexion entrante. |
| AcceptAsync(CancellationToken) |
Accepte une connexion entrante. |
| AcceptAsync(Socket, CancellationToken) |
Accepte une connexion entrante. |
AcceptAsync()
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Accepte une connexion entrante.
public:
System::Threading::Tasks::Task<System::Net::Sockets::Socket ^> ^ AcceptAsync();
public System.Threading.Tasks.Task<System.Net.Sockets.Socket> AcceptAsync();
member this.AcceptAsync : unit -> System.Threading.Tasks.Task<System.Net.Sockets.Socket>
Public Function AcceptAsync () As Task(Of Socket)
Retours
Tâche asynchrone qui se termine avec le socket accepté.
Exceptions
Une opération non valide a été demandée. Cette exception se produit si l’acceptation Socket n’écoute pas les connexions ou si le socket accepté est lié.
Vous devez appeler la méthode et Listen(Int32) la Bind(EndPoint) méthode avant d’appeler la AcceptAsync(SocketAsyncEventArgs) méthode.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Remarques
Cette méthode stocke dans la tâche toutes les exceptions non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de façon synchrone. Pour les exceptions stockées, consultez les exceptions levées par Accept().
S’applique à
AcceptAsync(Socket)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Accepte une connexion entrante.
public:
System::Threading::Tasks::Task<System::Net::Sockets::Socket ^> ^ AcceptAsync(System::Net::Sockets::Socket ^ acceptSocket);
public System.Threading.Tasks.Task<System.Net.Sockets.Socket> AcceptAsync(System.Net.Sockets.Socket? acceptSocket);
member this.AcceptAsync : System.Net.Sockets.Socket -> System.Threading.Tasks.Task<System.Net.Sockets.Socket>
Public Function AcceptAsync (acceptSocket As Socket) As Task(Of Socket)
Paramètres
- acceptSocket
- Socket
Socket à utiliser pour accepter la connexion.
Retours
Tâche asynchrone qui se termine avec le socket accepté.
Exceptions
Une opération non valide a été demandée. Cette exception se produit si l’acceptation Socket n’écoute pas les connexions ou si le socket accepté est lié.
Vous devez appeler la méthode et Listen(Int32) la Bind(EndPoint) méthode avant d’appeler la AcceptAsync(SocketAsyncEventArgs) méthode.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
S’applique à
AcceptAsync(SocketAsyncEventArgs)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Commence une opération asynchrone pour accepter une tentative de connexion entrante.
public:
bool AcceptAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.AcceptAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function AcceptAsync (e As SocketAsyncEventArgs) As Boolean
Paramètres
Objet SocketAsyncEventArgs à utiliser pour cette opération de socket asynchrone.
Retours
true si l’opération d’E/S est en attente. L’événement Completed sur le e paramètre est déclenché à l’achèvement de l’opération.
false si l’opération d’E/S s’est terminée de façon synchrone. L’événement Completed sur le e paramètre ne sera pas déclenché et l’objet e transmis en tant que paramètre peut être examiné immédiatement après l’appel de méthode pour récupérer le résultat de l’opération.
Exceptions
Un argument n’est pas valide. Cette exception se produit si la mémoire tampon fournie n’est pas suffisamment grande. La mémoire tampon doit être d’au moins 2 * (sizeof(SOCKADDR_STORAGE + 16)) octets.
Cette exception se produit également si plusieurs mémoires tampons sont spécifiées, la BufferList propriété n’est pas null.
Un argument est hors limites. L’exception se produit si la Count valeur est inférieure à 0.
Une opération non valide a été demandée. Cette exception se produit si l’acceptation Socket n’écoute pas les connexions ou si le socket accepté est lié.
Vous devez appeler la méthode et Listen(Int32) la Bind(EndPoint) méthode avant d’appeler la AcceptAsync(SocketAsyncEventArgs) méthode.
Cette exception se produit également si le socket est déjà connecté ou si une opération de socket a déjà été en cours à l’aide du paramètre spécifié e .
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Remarques
Les protocoles orientés connexion peuvent utiliser la AcceptAsync méthode pour traiter de manière asynchrone les tentatives de connexion entrantes. L’acceptation asynchrone des connexions vous donne la possibilité d’envoyer et de recevoir des données au sein d’un thread d’exécution distinct. Avant d’appeler la AcceptAsync méthode, vous devez appeler la Listen méthode pour écouter et mettre en file d’attente les demandes de connexion entrantes.
Pour être averti de l’achèvement, vous devez créer une méthode de rappel qui implémente le délégué EventHandler<SocketAsyncEventArgs> et le raccorder à l’événement SocketAsyncEventArgs.Completed .
Les propriétés et événements suivants sur l’objet System.Net.Sockets.SocketAsyncEventArgs sont obligatoires :
L’appelant peut éventuellement spécifier un élément existant Socket à utiliser pour la connexion entrante en spécifiant l’utilisation Socket avec la SocketAsyncEventArgs.AcceptSocket propriété.
Si la propriété a la SocketAsyncEventArgs.AcceptSocket valeur Null, un nouveau Socket est construit avec le même AddressFamily, SocketTypeet ProtocolType en tant que la propriété actuelle Socket et définie comme SocketAsyncEventArgs.AcceptSocket propriété.
L’appelant peut définir la SocketAsyncEventArgs.UserToken propriété sur n’importe quel objet d’état utilisateur souhaité avant d’appeler la AcceptAsync méthode, afin que les informations soient récupérables dans la méthode de rappel. Si le rappel a besoin de plus d’informations qu’un seul objet, une petite classe peut être créée pour contenir les autres informations d’état requises en tant que membres.
Si vous le souhaitez, une mémoire tampon peut être fournie pour recevoir le bloc initial de données sur le socket une fois la ConnectAsync méthode réussie. Dans ce cas, la SocketAsyncEventArgs.Buffer propriété doit être définie sur la mémoire tampon contenant les données à recevoir et la SocketAsyncEventArgs.Count propriété doit être définie sur le nombre maximal d’octets de données à recevoir dans la mémoire tampon. Ces propriétés peuvent être définies à l’aide de la SocketAsyncEventArgs.SetBuffer méthode. Une partie de la mémoire tampon passée sera consommée en interne pour une utilisation par l’appel Winsock AcceptEx sous-jacent. Cela signifie que la quantité de données retournées est toujours inférieure à la valeur de la SocketAsyncEventArgs.Count propriété sur l’instance System.Net.Sockets.SocketAsyncEventArgs fournie. La quantité de mémoire tampon utilisée en interne varie en fonction de la famille d’adresses du socket. La taille minimale de la mémoire tampon requise est de 288 octets. Si une plus grande taille de mémoire tampon est spécifiée, les Socket données supplémentaires sont attendues autres que les données d’adresse reçues par l’appel Winsock AcceptEx et attendent que ces données supplémentaires aient été reçues. Si un délai d’expiration se produit, la connexion est réinitialisée. Par conséquent, si des données supplémentaires sont attendues d’une quantité spécifique, la taille de la mémoire tampon doit être définie sur la taille minimale de la mémoire tampon plus cette quantité.
La méthode de rappel d’achèvement doit examiner la SocketAsyncEventArgs.SocketError propriété pour déterminer si l’opération AcceptAsync a réussi.
L’événement SocketAsyncEventArgs.Completed peut se produire dans certains cas lorsqu’aucune connexion n’a été acceptée et que la SocketAsyncEventArgs.SocketError propriété doit être définie ConnectionResetsur . Cela peut se produire suite à l’analyse de port à l’aide d’une analyse de type SYN demi-ouverte (une séquence SYN -> SYN-ACK -> RST). Les applications utilisant la AcceptAsync méthode doivent être prêtes à gérer cette condition.
Voir aussi
S’applique à
AcceptAsync(CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Accepte une connexion entrante.
public:
System::Threading::Tasks::ValueTask<System::Net::Sockets::Socket ^> AcceptAsync(System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask<System.Net.Sockets.Socket> AcceptAsync(System.Threading.CancellationToken cancellationToken);
member this.AcceptAsync : System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.Socket>
Public Function AcceptAsync (cancellationToken As CancellationToken) As ValueTask(Of Socket)
Paramètres
- cancellationToken
- CancellationToken
Jeton d’annulation qui peut être utilisé pour annuler l’opération asynchrone.
Retours
Tâche asynchrone qui se termine avec le socket accepté.
Exceptions
Une opération non valide a été demandée. Cette exception se produit si l’acceptation Socket n’écoute pas les connexions ou si le socket accepté est lié.
Vous devez appeler la méthode et Listen(Int32) la Bind(EndPoint) méthode avant d’appeler la AcceptAsync(SocketAsyncEventArgs) méthode.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.
Remarques
Cette méthode stocke dans la tâche toutes les exceptions non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de façon synchrone. Pour les exceptions stockées, consultez les exceptions levées par Accept().
S’applique à
AcceptAsync(Socket, CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Accepte une connexion entrante.
public:
System::Threading::Tasks::ValueTask<System::Net::Sockets::Socket ^> AcceptAsync(System::Net::Sockets::Socket ^ acceptSocket, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask<System.Net.Sockets.Socket> AcceptAsync(System.Net.Sockets.Socket? acceptSocket, System.Threading.CancellationToken cancellationToken);
member this.AcceptAsync : System.Net.Sockets.Socket * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.Socket>
Public Function AcceptAsync (acceptSocket As Socket, cancellationToken As CancellationToken) As ValueTask(Of Socket)
Paramètres
- acceptSocket
- Socket
Socket à utiliser pour accepter la connexion.
- cancellationToken
- CancellationToken
Jeton d’annulation qui peut être utilisé pour annuler l’opération asynchrone.
Retours
Tâche asynchrone qui se termine avec le socket accepté.
Exceptions
Une opération non valide a été demandée. Cette exception se produit si l’acceptation Socket n’écoute pas les connexions ou si le socket accepté est lié.
Vous devez appeler la méthode et Listen(Int32) la Bind(EndPoint) méthode avant d’appeler la AcceptAsync(SocketAsyncEventArgs) méthode.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.