Saltar al contenido principal
Versión: 20 R9

TCPListener

La clase TCPListener permite crear y configurar un servidor TCP en 4D. Una vez instanciado el listener TCP, puede recibir conexiones TCP clientes y comunicarse utilizando cualquier protocolo que soporte TCP.

La clase TCPListener está disponible en el class store 4D. Puede crear un servidor TCP utilizando la función 4D.TCPListener.new(), que devuelve un objeto TCPListener.

Todas las funciones de la clase TCPListener son hilo seguro.

Historia
LanzamientoModificaciones
20 R9Clase añadida

Ejemplo


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
//cuando se conecta, inicia un servidor para manejar la comunicación
If($event.address # "192.168.@")
$result:=Null //en algunos casos puede rechazar la conexión
Else
$result:=cs.MyAsyncTCPConnection.new(This) //ver clase TCPConnection
End if

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

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

nota

Ver ejemplo en la clase TCPConnection para una descripción de la clase de usuario MyAsyncTCPConnection.

Objeto TCPListener

Un objeto TCPListener es un objeto compartido.

Los objetos TCPListener ofrecen las siguientes propiedades y funciones:

errors : Collection
una colección de objetos de error asociados con la conexión
port : Number
el número de puerto de la máquina
.terminate()
cierra el oyente y libera el puerto

4D.TCPListener.new()

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

ParámetrosTipoDescripción
portNumber->Puerto TCP de escucha
optionsObject->Configuración de opciones para el listener
Resultado4D.TCPListener<-Nuevo objeto TCPListener

Descripción

La función 4D.TCPListener.new() crea un nuevo servidor TCP escuchando el puerto especificado usando las options definidas, y devuelve un objeto 4D.TCPListener.

Parámetro options

En el parámetro opciones, pase un objeto para configurar el listener y todos los TCPConnections que crea:

PropiedadTipoDescripciónPor defecto
onConnectionFormulaRetrollamada cuando se define una nueva conexión. La fórmula recibe dos parámetros ($listener y $event, ver más abajo) y debe devolver o bien null/undefined para impedir la conexión o bien un objeto option que se utilizará para crear la TCPConnection.Indefinido
onErrorFormulaRetrollamada activada en caso de error. La fórmula recibe el objeto TCPListener en $listenerIndefinido
onTerminateFormulaRetrollamada activada justo antes de que se cierre el TCPListener. La fórmula recibe el objeto TCPListener en $listenerIndefinido

Función callback (retrollamada)

Las funciones de retrollamada reciben hasta dos parámetros:

ParámetrosTipoDescripción
$listenerTCPListener objectLa instancia actual del listener TCP.
$eventobjeto TCPEventContiene información sobre el evento.

Secuencia de retrollamadas:

  1. onConnection se activa cada vez que se establece una conexión.
  2. onError se activa si se produce un error.
  3. onTerminate siempre se activa justo antes de terminar una conexión.

Objeto TCPEvent

Un objeto TCPEvent es devuelto cuando se llama una función de retrollamada.

.errors

errors : Collection

Descripción

La propiedad .errors contiene una colección de objetos de error asociados con la conexión. Cada objeto de error incluye el código de error, una descripción y la firma del componente que causó el error.

PropiedadTipoDescripción
errorsCollectionPila de error 4D en caso de error
[].errCodeNumberCódigo de error 4D
[].messageTextDescripción del error 4D
[].componentSignatureTextFirma del componente interno que ha devuelto el error

.port

port : Number

Descripción

La propiedad .port contiene el número de puerto de la máquina. Esta propiedad es de solo lectura.

.terminate()

.terminate()

ParámetrosTipoDescripción
No requiere ningún parámetro

Descripción

La función terminate() cierra el oyente y libera el puerto.