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
Lanzamiento | Modificaciones |
---|---|
20 R9 | Clase 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)
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ámetros | Tipo | Descripción | |
---|---|---|---|
port | Number | -> | Puerto TCP de escucha |
options | Object | -> | Configuración de opciones para el listener |
Resultado | 4D.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:
Propiedad | Tipo | Descripción | Por defecto |
---|---|---|---|
onConnection | Formula | Retrollamada 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 |
onError | Formula | Retrollamada activada en caso de error. La fórmula recibe el objeto TCPListener en $listener | Indefinido |
onTerminate | Formula | Retrollamada activada justo antes de que se cierre el TCPListener. La fórmula recibe el objeto TCPListener en $listener | Indefinido |
Función callback (retrollamada)
Las funciones de retrollamada reciben hasta dos parámetros:
Parámetros | Tipo | Descripción |
---|---|---|
$listener | TCPListener object | La instancia actual del listener TCP. |
$event | objeto TCPEvent | Contiene información sobre el evento. |
Secuencia de retrollamadas:
onConnection
se activa cada vez que se establece una conexión.onError
se activa si se produce un error.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.
Propiedad | Tipo | Descripción | |
---|---|---|---|
errors | Collection | Pila de error 4D en caso de error | |
[].errCode | Number | Código de error 4D | |
[].message | Text | Descripción del error 4D | |
[].componentSignature | Text | Firma 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ámetros | Tipo | Descripción | |
---|---|---|---|
No requiere ningún parámetro |
Descripción
La función terminate()
cierra el oyente y libera el puerto.