TCP_Open

4D - Documentation   Français   English   German   Japanese   Commandes Internet de 4D, Sommaire   Commandes Internet de 4D, Index   Retour   Précédent   Suivant

version 6.8.1 (Modifiée)


TCP_Open (nomServeur; portDistant; tcp_ID{; paramsSession}) Entier

ParamètreTypeDescription
nomServeurAlphaNom ou adresse IP du serveur
portDistantEntierPort distant auquel se connecter (0 = indifférent)
tcp_IDEntier longRéférence de la session TCP ouverte
paramsSessionEntierParamètres de la session TCP
0 = Synchrone (Valeur par défaut), 1 = Asynchrone,
2 = Mode SSL synchrone, 3 = Mode SSL asynchrone
RésultatEntierCode d'erreur

Description

La commande TCP_Open ouvre une connexion TCP sortante vers un domaine.

TCP_Open établit une connexion avec nomServeur, sur le port référencé par portDistant (si ce paramètre est différent de 0), et retourne le numéro de la session dans tcp_ID. Cette valeur sera utilisée par tous les appels TCP ultérieurs se rapportant à cette session. Par défaut, une session ouverte par TCP_Open n'est maintenue que pendant 30 secondes (timeout) si aucune donnée n'est reçue. Cette valeur de timeout par défaut peut être modifiée à l'aide de la commande IT_SetTimeOut.

Le paramètre nomServeur contient le nom ou l'adresse IP du serveur avec lequel vous ouvrez une connexion.

Le paramètre portDistant permet d'indiquer le port TCP de la machine désignée par nomServeur, avec laquelle vous souhaitez établir une connexion. Pour utiliser n'importe quel port, passez 0 (zéro) dans ce paramètre.

Note : Après un appel à TCP_Open (ou TCP_Listen), portDistant peut retourner une valeur négative si la valeur passée dans ce paramètre est supérieure à 32767. Cela ne perturbe pas la connexion. Toutefois, pour éviter cette situation, vous pouvez utiliser une variable intermédiaire :

   $v_ portDistant:=v_ portDistant
   $err:=TCP_Open (v_ AdrIPServeurDistant;$v_ portDistant;v_ SessionID)  

tcp_ID retourne la référence de la session ouverte. Cette référence sera utilisée par toutes les commandes TCP ultérieures exécutées dans la session.

Le paramètre optionnel paramsSession vous permet de définir si vous souhaitez que la session TCP soit ou non sécurisée via SSL, et si vous souhaitez que les commandes TCP partagent ou non le temps CPU avec les autres process de 4D (mode asynchrone ou synchrone). Ce paramètre est pris en compte par toutes les commandes TCP exécutées dans la session courante.

paramsSession accepte les valeurs suivantes :

0 = Mode standard synchrone (mode par défaut, fonctionnement identique à celui des versions précédentes de 4D Internet Commands).

1 = Mode standard asynchrone

2 = Mode SSL synchrone. Toutes les commandes TCP référençant cette session (tcp_ID) seront exécutées en mode synchrone et utiliseront le protocole SSL.

3 = Mode SSL asynchrone. Toutes les commandes TCP référençant cette session (tcp_ID) seront exécutées en mode asynchrone et utiliseront le protocole SSL.

Le protocole SSL (Secured Socket Layer) permet d'établir des communications TCP sécurisées (reportez-vous à la documentation de 4D pour plus d'informations sur l'installation et la mise en oeuvre du protocole SSL).

Note : L'erreur 10089 est retournée lorsque vous passez les valeurs 2 ou 3 si la connexion SSL ne peut pas être ouverte (librairie SLI manquante dans le dossier 4D Extensions).

Toute connexion TCP ouverte par la commande TCP_Open doit être finalement refermée à l'aide de la commande TCP_Close.

Asynchrone/Synchrone

En mode asynchrone, les commandes Internet de 4D rendent la main au moteur de 4D immédiatement après leur exécution, sans attendre la fin du process de connexion (c'est-à-dire, sans attendre que la connexion avec le serveur distant soit établie). Le mode asynchrone est utile lorsque vous souhaitez que les commandes TCP ne consomment pas le temps machine de 4D.

En mode synchrone, les commandes Internet de 4D ne rendent la main au moteur de 4D (c'est-à-dire aux autres process de 4D) que lorsque le process de connexion a pris fin (que la connexion ait réussi ou non).

Exemple

Vous souhaitez vous connecter à un site Web en Https ; assurez-vous que la librairie SLI est correctement installée et ouvrez la connexion sur le port 443 :

   $vError:=TCP_Open (hostName; 443; tcp_ID;2)
   ...
   $vError:=TCP_Close (tcp_ID) `Ne pas oublier de refermer la session

Référence

IT_SetTimeOut.


4D - Documentation   Français   English   German   Japanese   Commandes Internet de 4D, Sommaire   Commandes Internet de 4D, Index   Retour   Précédent   Suivant