Functions > Network >


TCPListen

Crée un socket d'écoute pour une connexion entrante.

TCPListen ( IPAddr, port [, MaxPendingConnection] )

Paramètres

IPAddr Adresse de protocole Internet séparé par des points(IpV4) tel que : "192.162.1.1".
port Port sur lequel le socket créé sera connecté.
MaxPendingConnection [optionnel] Longueur maximale de la file d'attente des connexions en attente. Par défaut, une valeur maximale raisonnable est définie.

Valeur de retour

Succès: Retourne l'identifiant principale du socket.
Échec: Retourne -1 ou 0, et définit @error <> 0.
@error: 1 : IPAddr incorrect.
2 : port incorrect.
Valeur retournée par l'API Windows WSAGetError (Consultez MSDN).

En relation

TCPAccept, TCPCloseSocket, TCPConnect, TCPSend, TCPShutdown, TCPStartup, TCPTimeout (Option)

Exemple

#include <MsgBoxConstants.au3>

Example()

Func Example()
    TCPStartup() ; Démarre le service TCP.

    ; Enregistre OnAutoItExit qui sera appelée  lorsque le script se fermera.
    OnAutoItExitRegister("OnAutoItExit")

    ; Assigne des variables locales avec l'adresse IP et le port.
    Local $sIPAddress = "127.0.0.1" ; Cette adresse IP ne fonctionne que pour les tests sur votre propre ordinateur.
    Local $iPort = 65432 ; Port utilisé pour la connexion.

    ; Assigne une variable locale avec le socket d'écoute et se connecte à l'adresse IP et au port spécifiés avec un maximum de 100 connexions en attente.
    Local $iListenSocket = TCPListen($sIPAddress, $iPort, 100)

    ; Notes: Vous pouvez seulement écouter sur des IPs privées, comme celui utilisé ici;
    ;ou sur la plage de 192 à 223 (généralement 192.168.X.X, utilisez @IPAddress1 pour tester sur votre IP locale (vous aurez besoin d'un autre ordinateur).
    ; L'identifiant de la socket Listen est utilisée uniquement pour la fonction TCPAccept.

    ; Si une erreur s'est produite, affiche le code d'erreur et retourne False.
    If @error Then
        ; Quelqu'un est probablement déjà à l'écoute sur cette adresse IP et sur ce port (script déjà en cours d'exécution?).
        Local $iError = @error
        MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Ne peut pas écouter, code de l'erreur: " & $iError)
        Return False
    Else
        MsgBox($MB_SYSTEMMODAL, "", "Ecoute réussie.")
    EndIf

    ; Ferme le socket d'écoute pour permettre une connexion ultérieure.
    ; Tant le socket n'est pas fermé, aucun autre programme ne peut se connecter avec la même adresse IP et le même port.
    TCPCloseSocket($iListenSocket)
EndFunc   ;==>Example

Func OnAutoItExit()
    TCPShutdown() ; Ferme le service TCP.
EndFunc   ;==>OnAutoItExit