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

TCPListener

A classe TCPListener permite que você crie e configure um servidor TCP em 4D. Depois que o listener TCP for instanciado, você poderá receber conexões TCP clientes e se comunicar usando qualquer protocolo compatível com TCP.

A classe TCPListener está disponível no repositório de classes 4D. Você pode criar um servidor TCP usando a função 4D.TCPListener.new(), que retorna um objeto TCPListener.

Todas as funções da classe TCPListener são 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
//quando conectado, inicie um servidor para tratar da comunicação
If($event.address # "192.168.@")
$result:=Null //em alguns casos, você pode rejeitar a conexão
Else
$result:=cs.MyAsyncTCPConnection.new(This) //ver classe TCPConnection
End if

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

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

nota

Veja exemplo da clase TCPConnection para uma descrição da classe de usuário MyAsyncTCPConnection.

TCPListener Object

Um objeto TCPListener é um objeto compartilhado.

Os objetos TCPListener fornecem as seguintes propriedades e funções:

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->Porta TCP para ouvir
optionsObject->Configuração opções para o ouvinte
Resultados4D.TCPListener<-Novo objeto TCPListener

Descrição

A função 4D.TCPListener.new() cria um novo servidor TCP que escuta a port especificada usando as options definidas e retorna um objeto 4D.TCPListener.

options parameter

No parâmetro options, passe um objeto para configurar o listener e todas as TCPConnections que ele cria:

PropriedadeTipoDescriçãoPor padrão
onConnectionFormulaCallback quando uma nova conexão é estabelecida. 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 é acionado cada vez que uma conexão é estabelecida.
  2. onError é acionado se ocorrer um erro.
  3. onTerminate é sempre acionado antes de uma conexão ser encerrada.

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.