Partager via


Écoute des connexions sur un SAN

La figure suivante montre une vue d’ensemble de la façon dont le commutateur Windows Sockets définit un socket SAN pour qu’il reconnaisse et file d’attente, c’est-à-dire qu’il écoute les demandes de connexion entrantes d’un homologue distant. Les rubriques qui suivent décrivent le processus d’écoute plus en détail.

Diagramme montrant le processus de commutateur de sockets Windows définissant un socket SAN pour accepter et mettre en file d’attente les demandes de connexion entrantes d’un homologue distant.

Lorsque le commutateur Windows Sockets reçoit un appel WSPListen lancé par une application, le commutateur appelle toujours la fonction WSPListen du fournisseur TCP/IP pour définir le socket du fournisseur TCP/IP pour qu’il accepte et met en file d’attente les demandes de connexion entrantes. Si le socket de l’application est lié à l’adresse IP d’une carte réseau SAN ou à l’adresse IP générique, le commutateur utilise également le fournisseur de services SAN approprié pour créer et lier un socket supplémentaire. Pour plus d’informations, consultez Création et liaison de sockets SAN.

Écoute des demandes de connexion entrantes

Après avoir demandé à un fournisseur de services SAN de créer et de lier le socket SAN, le commutateur appelle la fonction WSPListen du fournisseur de services SAN pour que le socket SAN écoute les connexions entrantes et spécifie une limite sur le nombre de demandes de connexion entrantes que le fournisseur de services SAN peut mettre en file d’attente.

Configuration pour accepter les connexions entrantes

Le commutateur accepte les connexions entrantes uniquement en mode non bloquant. Le commutateur appelle la fonction WSPEventSelect du fournisseur de services SAN pour placer un socket en mode non bloquant et demander la notification des événements de connexion entrants. Dans cet appel, le commutateur transmet le code FD_ACCEPT et l’objet d’événement à associer à ce code. Une fois que le fournisseur de services SAN a reçu une demande de connexion sur son socket qui a été précédemment établi pour l’écoute, le fournisseur de services SAN appelle la fonction Win32 SetEvent pour signaler l’objet d’événement associé. Le commutateur écoute les événements de connexion entrants dans un thread dédié et accepte ou rejette la connexion une fois l’objet d’événement signalé. Pour plus d’informations, consultez Accepter les demandes de connexion.

Indiquant le refus d’une demande de connexion à un homologue distant

Si une demande de connexion arrive et que le backlog des demandes de connexion du fournisseur de services SAN est complet, le fournisseur de services SAN doit immédiatement indiquer à l’homologue distant qu’il refuse la demande de connexion. Dans ce cas, le fournisseur de services SAN ne signale pas à l’objet d’événement d’informer le commutateur d’accepter ou de rejeter la demande de connexion. Le fournisseur de services SAN sur l’homologue distant doit ensuite échouer son opération de connexion initiée par un appel WSPConnect avec le code d’erreur WSAECONNREFUSED.