Saltar para o conteúdo principal
Versão: 20 R9 BETA

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.

História
ReleaseMudanças
20 R9Classe adicionada

Exemplo


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)

nota

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
uma coleção de objetos de erros associados à conexão
port : Number
o número da porta da máquina
.terminate()
fecha o listener e libera a porta

4D.TCPListener.new()

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

ParâmetroTipoDescrição
portNumber->TCP port to listen
optionsObject->Configuração opções para o ouvinte
Resultados4D.TCPListener<-New TCPListener object

Descrição

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.

options parameter

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

PropriedadeTipoDescriçãoPor padrão
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.Indefinido
onErrorFormulaCallback triggered in case of an error. A fórmula recebe o objeto TCPListener em $listenerIndefinido
onTerminateFormulaCallback triggered just before the TCPListener is closed. A fórmula recebe o objeto TCPListener em $listenerIndefinido

Funções Callback

Callback functions receive up to two parameters:

ParâmetroTipoDescrição
$listenerTCPListener objectThe current TCP listener instance.
$eventobjeto TCPEventContém informações sobre o evento.

Sequência de chamadas de retorno:

  1. onConnection is triggered each time a connection is established.
  2. onError é acionado se ocorrer um erro.
  3. onTerminate is always triggered just before a connection is terminated.

Objeto TCPEvent

Um objeto TCPEvent é retornado quando uma função de callback é chamada.

.errors

errors : Collection

Descrição

A propriedade .errors contém uma coleção de objetos de erros associados à conexão. Cada objeto de erro inclui o código de erro, uma descrição e a assinatura do componente que causou o erro.

PropriedadeTipoDescrição
errorsCollectionpilha de erros 4D em caso de erro
[].errCodeNumberCódigo de erro 4D
[].messageTextDescrição do erro 4D
[].componentSignatureTextAssinatura da componente interna que devolveu o erro

.port

port : Number

Descrição

A propriedade .port contém o número da porta da máquina. Essa propriedade é somente leitura.

.terminate()

.terminate()

ParâmetroTipoDescrição
Não exige nenhum parâmetro

Descrição

A função terminate() fecha o listener e libera a porta.