4D Internet Commands v16

TCP_Open

Accueil

 
4D Internet Commands v16
TCP_Open

TCP_Open 


 

TCP_Open ( nomServeur ; portDistant ; tcp_ID ; paramsSession ) -> Résultat 
Paramètre Type   Description
nomServeur  Chaîne in Nom ou adresse IP du serveur
portDistant  Entier in Port distant auquel se connecter (0 = indifférent)
tcp_ID  Entier long in Référence de la session TCP ouverte
paramsSession  Entier in Paramètres de la session TCP 0 = Synchrone (Valeur par défaut), 1 = Asynchrone, 2 = Mode SSL synchrone, 3 = Mode SSL asynchrone
Résultat  Entier in Code d'erreur

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.

  • 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



Voir aussi  

IT_SetTimeOut

 
PROPRIÉTÉS 

Produit : 4D Internet Commands
Thème : IC TCP/IP
Numéro : 88933
Nom intl. : TCP_Open

 
HISTORIQUE 

Modifié : 4D Internet Commands 6.8.1

 
UTILISATION DE L'ARTICLE

4D Internet Commands ( 4D Internet Commands v16)