Aller au contenu principal
Version: Suivant

TCPListener

The TCPListener class allows you to create and configure a TCP server in 4D. Once the TCP listener is instantiated, you can receive client TCP connections and communicate using any protocol supporting TCP.

The TCPListener class is available from the 4D class store. You can create a TCP server using the 4D.TCPListener.new() function, which returns a TCPListener object.

All TCPListener class functions are 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
//when connected, start a server to handle the communication
If($event.address # "192.168.@")
$result:=Null //in some cases you can reject the connection
Else
$result:=cs.MyAsyncTCPConnection.new(This) //see TCPConnection class
End if

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

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

note

See example in TCPConnection class for a description of the MyAsyncTCPConnection user class.

TCPListener Object

A TCPListener object is a shared object.

TCPListener objects provide the following properties and functions:

errors : Collection
a collection of error objects associated with the connection
port : Number
the port number of the machine
.terminate()
closes the listener and releases the port

4D.TCPListener.new()

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

ParamètresTypeDescription
portNumber->TCP port to listen
optionsObject->Configuration options for the listener
Résultat4D.TCPListener<-New TCPListener object

Description

The 4D.TCPListener.new() function creates a new TCP server listening to the specified port using the defined options, and returns a 4D.TCPListener object.

Paramètre options

In the options parameter, pass an object to configure the listener and all the TCPConnections it creates:

PropriétéTypeDescriptionPar défaut
onConnectionFormulaCallback when a new connection is established. The Formula receives two parameters ($listener and $event, see below) and must return either null/undefined to prevent the connection or an option object that will be used to create the TCPConnection.Undefined
onErrorFormulaCallback triggered in case of an error. The Formula receives the TCPListener object in $listenerUndefined
onTerminateFormulaCallback triggered just before the TCPListener is closed. The Formula receives the TCPListener object in $listenerUndefined

Fonctions de callback

Callback functions receive up to two parameters:

ParamètresTypeDescription
$listenerTCPListener objectThe current TCP listener instance.
$eventTCPEvent objectContains information about the event.

Sequence of Callback Calls:

  1. onConnection is triggered each time a connection is established.
  2. onError is triggered if an error occurs.
  3. onTerminate is always triggered just before a connection is terminated.

TCPEvent object

A TCPEvent object is returned when a callback function is called.

.errors

errors : Collection

Description

The .errors property contains a collection of error objects associated with the connection. Each error object includes the error code, a description, and the signature of the component that caused the error.

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

The .port property contains the port number of the machine. Cette propriété est en lecture seule.

.terminate()

.terminate()

ParamètresTypeDescription
Ne requiert aucun paramètre

Description

The terminate() function closes the listener and releases the port.