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
Release | Modifications |
---|---|
20 R9 | Classe 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)
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ètres | Type | Description | |
---|---|---|---|
port | Number | -> | Port TCP à écouter |
options | Object | -> | options de configuration du listener |
Résultat | 4D.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é | Type | Description | Par défaut |
---|---|---|---|
onConnection | Formula | Callback 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 |
onError | Formula | Callback déclenchée en cas d'erreur. La formule reçoit l'objet TCPListener dans $listener | Undefined |
onTerminate | Formula | Callback déclenchée juste avant la fermeture du TCPListener. La formule reçoit l'objet TCPListener dans $listener | Undefined |
Fonctions de callback
Les fonctions de callback peuvent recevoir jusqu'à deux paramètres :
Paramètres | Type | Description |
---|---|---|
$listener | objet TCPListener | L'instance courante du listener TCP. |
$event | objet TCPEvent | Contient des informations sur l'événement. |
Séquence des appels de callbacks :
onConnection
est déclenchée à chaque fois qu'une connexion est établie.onError
est déclenchée en cas d'erreur.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é | Type | Description | |
---|---|---|---|
errors | Collection | Pile d'erreurs 4D en cas d'erreur | |
[].errCode | Number | Code d'erreur 4D | |
[].message | Text | Description de l'erreur 4D | |
[].componentSignature | Text | Signature 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ètres | Type | Description | |
---|---|---|---|
Ne requiert aucun paramètre |
Description
La fonction terminate()
ferme le listener et libère le port.