4D Internet Commands v16

TCP_Listen

Accueil

 
4D Internet Commands v16
TCP_Listen

TCP_Listen 


 

TCP_Listen ( adresseIP ; portDistant ; portLocal ; timeOut ; tcp_ID ) -> Résultat 
Paramètre Type   Description
adresseIP  Chaîne in Adresse IP locale d'écoute ou "" pour écouter sur toutes les adresses disponibles
in Adresse IP distante utilisée (si une variable contenant une chaîne vide est passée)
portDistant  Entier in *** Paramètre ignoré ***
portLocal  Entier in Numéro de port local, 0 = Utiliser un port local vacant
in Numéro du port local utilisé (si 0 passé)
timeOut  Entier in Nombre de secondes à attendre avant timeout, 0 = Pas de timeout
tcp_ID  Entier long in Référence de la session TCP ouverte
Résultat  Entier in Code d'erreur

La commande TCP_Listen ouvre une "socket" de communication sur le port défini par les paramètres adresseIP et portLocal.

Cette commande ne rend pas la main à la méthode d'appel de 4D tant que la connexion n'a pas été ouverte ou que la période de timeOut ne s'est pas écoulée. L'exécution de TCP_Listen peut donc provoquer temporairement le blocage de la base. Toutefois, cette commande est particulièrement adaptée au multi-process : elle partage le temps CPU avec les autres process 4D en cours d'exécution.
Il est donc conseillé d'exécuter TCP_Listen au sein d'un process 4D particulier (en particulier si aucun timeOut n'est spécifié).

Le paramètre adresseIP contient l'adresse IP utilisée pour la connexion:

  • Vous pouvez passer l'adresse locale sur laquelle doit être effectuée la connexion entrante.
  • Si vous passez une chaîne vide, la commande écoute sur toutes les adresses disponibles de la machine.
  • Si vous passez une variable contenant une chaîne vide, la commande retournera en outre dans le paramètre l’adresse IP distante utilisée pour la connexion.

Le paramètre portLocal contient le numéro de port TCP à utiliser pour la communication. Si vous passez 0 (zéro), la commande utilisera un port vacant et retournera son numéro dans ce paramètre.

Le paramètre timeOut spécifie le nombre maximum de secondes pendant lequel la commande attendra une connexion entrante. Si vous passez 0 (zéro), la commande attendra indéfiniment la connexion (pas de timeout). Utilisez cette option avec précaution car le contrôle n'est pas restitué au process d'appel 4D si aucune connexion n'est effectuée. En particulier, ne passez pas 0 dans ce paramètre si la base est mono-process.

Le paramètre 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.

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

Exemple  

 C_LONGINT(vTCPID)
 C_LONGINT(vStatus)
 $err:=TCP_Listen("";0;0;30;vTCPID)
 $err:=TCP_State(vTCPID;vStatut)
 If(vStatut=2) //La socket est ouverte et à l'écoute
    FaireQuelqueChose
    $err:=TCP_Close(vTCPID)
 End if



Voir aussi  

Annexe B, Numéros des ports TCP
TCP_Open
TCP_State

 
PROPRIÉTÉS 

Produit : 4D Internet Commands
Thème : IC TCP/IP
Numéro : 88932

 
HISTORIQUE 

Modifié : 4D Internet Commands 6.8.1

 
UTILISATION DE L'ARTICLE

4D Internet Commands ( 4D Internet Commands v16)