Aller au contenu principal
Version: 20 R9 BETA

TCPListener

La classe TCPListener vous permet de créer et de configurer un serveur TCP dans 4D. Une fois le listener TCP instancié, vous pouvez recevoir des connexions TCP clientes et communiquer à l'aide de n'importe quel protocole prenant en charge TCP.

La classe TCPListener est disponible dans le class store 4D. Vous pouvez créer un serveur TCP à l'aide de la fonction 4D.TCPListener.new(), qui renvoie un objet TCPListener.

Toutes les fonctions de la classe TCPListener sont thread-safe.

Historique
ReleaseModifications
20 R9Classe ajoutée

Exemple


property listener : 4D.TCPListener

Class constructor($port : Integer)

This.listener:=4D.TCPListener.new($port; This)

Function terminate()

This.listener.terminate()

Function onConnection($listener : 4D.TCPListener ; $event : 4D.TCPEvent)->$result
//une fois connecté, démarre un serveur pour gérer la communication
If($event.address # "192.168.@")
$result:=Null //dans certains cas, vous pouvez rejeter la connexion
Else
$result:=cs.MyAsyncTCPConnection.new(This) //voir classe TCPConnection
End if

Function onError($listener : 4D.TCPListener ; $event : 4D.TCPEvent)

Function onTerminate($listener : 4D.TCPListener ; $event : 4D.TCPEvent)

note

Voir l'exemple de la classe TCPConnection pour une description de la classe utilisateur MyAsyncTCPConnexion.

TCPListener Object

Un objet TCPListener est un objet partagé.

Les objets TCPListener offrent les propriétés et fonctions suivantes :

errors : Collection
une collection d'objets erreur associés à la connexion
port : Number
le numéro de port de la machine
.terminate()
ferme le listener et libère le port

4D.TCPListener.new()

4D.TCPListener.new( port : Number ; options : Object ) : 4D.TCPListener

ParamètresTypeDescription
portNumber->Port TCP à écouter
optionsObject->options de configuration du listener
Résultat4D.TCPListener<-Nouvel objet TCPListener

Description

La fonction 4D.TCPListener.new() crée un nouveau serveur TCP écoutant le port spécifié en utilisant les options définies, et renvoie un objet 4D.TCPListener.

Paramètre options

Dans le paramètre options, passez un objet pour configurer le listener et toutes les TCPConnections qu'il crée :

PropriétéTypeDescriptionPar défaut
onConnectionFormulaCallback appelée lorsqu'une nouvelle connexion est établie. La formule reçoit deux paramètres ($listener et $event, voir ci-dessous) et doit retourner soit null/undefined pour empêcher la connexion, soit un objet option qui sera utilisé pour créer l'objet TCPConnection.Undefined
onErrorFormulaCallback déclenchée en cas d'erreur. La formule reçoit l'objet TCPListener dans $listenerUndefined
onTerminateFormulaCallback déclenchée juste avant la fermeture du TCPListener. La formule reçoit l'objet TCPListener dans $listenerUndefined

Fonctions de callback

Les fonctions de callback peuvent recevoir jusqu'à deux paramètres :

ParamètresTypeDescription
$listenerobjet TCPListenerL'instance courante du listener TCP.
$eventobjet TCPEventContient des informations sur l'événement.

Séquence des appels de callbacks :

  1. onConnection est déclenchée à chaque fois qu'une connexion est établie.
  2. onError est déclenchée en cas d'erreur.
  3. onTerminate est toujours déclenchée juste avant qu'une connexion soit terminée.

Objet TCPEvent

Un objet TCPEvent est renvoyé lorsqu'une fonction de callback est appelée.

.errors

errors : Collection

Description

La propriété .errors contient une collection d'objets erreur associés à la connexion. Chaque objet erreur comprend le code d'erreur, une description et la signature du composant qui a provoqué l'erreur.

PropriétéTypeDescription
errorsCollectionPile d'erreurs 4D en cas d'erreur
[].errCodeNumberCode d'erreur 4D
[].messageTextDescription de l'erreur 4D
[].componentSignatureTextSignature du composant interne qui a retourné l'erreur

.port

port : Number

Description

La propriété .port contient le numéro de port de la machine. Cette propriété est en lecture seule.

.terminate()

.terminate()

ParamètresTypeDescription
Ne requiert aucun paramètre

Description

La fonction terminate() ferme le listener et libère le port.