Functions > Network >


TCPConnect

Crée un socket connecté à un serveur existant.

TCPConnect ( IPAddr, port )

Paramètres

IPAddr Adresse de protocole Internet séparée par des points (IpV4) tel que: "192.162.1.1".
port Port sur lequel le socket créé sera connecté.

Valeur de retour

Succès: Retourne l'identifiant principal du socket.
Échec: Retourne -1 ou 0 et définit @error <> 0.
@error: -2 : non connecté 1 : IPAddr incorrect.
2 = port incorrect.
10060 : connexion hors délai.     Une tentative de connexion a échoué parce que la partie connectée n'a pas répondu correctement après une période de temps,
    ou la connexion établie a échoué parce que l'hôte connecté n'a pas répondu.
    Voir exemple de délai de connexion.
Valeur retournée par l'API windows WSAGetError (Consultez MSDN).

Remarque

Cette fonction est utilisée par un client pour communiquer avec le serveur.

En relation

TCPListen, TCPRecv, TCPSend, TCPStartup, TCPTimeout (Option)

Exemple

Exemple 1

#include <MsgBoxConstants.au3>

; Je suis le client, démarrez-moi après le serveur! (Démarrez d'abord l'exemple du script TCPAccept).

Example()

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

    ; Enregistre OnAutoItExit qui sera appelée  quand 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 et se connecte à un socket d'écoute avec l'adresse IP et le port spécifié.
    Local $iSocket = TCPConnect($sIPAddress, $iPort)

    ; Si une erreur s'est produite, affiche le code d'erreur et retourne False.
    If @error Then
        ; Le serveur est probablement hors ligne ou le port n'est pas ouvert sur le serveur.
        Local $iError = @error
        MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Connexion impossible, code d'erreur: " & $iError)
        Return False
    Else
        MsgBox($MB_SYSTEMMODAL, "", "Connection réussie")
    EndIf

    ; Ferme le socket.
    TCPCloseSocket($iSocket)
EndFunc   ;==>Example

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


Exemple 2

#include <MsgBoxConstants.au3>

; TCPConnect avec dépassement de délai
; Je suis le client, démarrez-moi pas plus de 10sec après le serveur! (Le script du serveur est le script d'exemple TCPAccept).

Example()

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

    ; Enregistre OnAutoItExit qui sera appelée quand le script sera fermé.
    OnAutoItExitRegister("OnAutoItExit")

    ; Affecte à des variables locales l'adresse IP à boucler et le port.
    Local $sIPAddress = "127.0.0.1" ; Cette adresse IP fonctionne seulement pour un test sur votre ordinateur.
    Local $iPort = 65432 ; Port utilisé pour la connexion.

    Opt("TCPTimeout", 1000)

    Local $iSocket, $iError
    Local $nMaxTimeout = 10 ; Le script est annulé si aucun serveur n'est disponible après 10 secondes

    Do
        ; Affecte une variable locale au socket et se connecte à un socket d'écoute avec l'adresse IP et le port spécifiés.
        $iSocket = TCPConnect($sIPAddress, $iPort)
        $nMaxTimeout -= 1
    Until @error = 0 Or $nMaxTimeout = 0

    $iError = @error
    Switch $iError
        Case 0
            MsgBox($MB_SYSTEMMODAL, "", "Connexion réussie après " & 10 - $nMaxTimeout & " TimeOut")
            TCPCloseSocket($iSocket) ; Ferme le socket.
        Case 10060
            MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Impossible d'établir la  connexion, après " & 10 - $nMaxTimeout & " TimeOut")
        Case Else ; @error <> 0
            ; Le serveur est probablement hors ligne ou le port n'est pas ouvert sur le serveur.
            MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Impossible d'établir la connexion, code de l'erreur: " & $iError)
    EndSwitch

    Return ($iError = 0) ; True si pas d'erreur
EndFunc   ;==>Example

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