Questa function block da eseguire in task Back, gestisce la comunicazione con protocollo TCP/IP in modalità server. Occorre definire in FilesArr l’indirizzo di un array di flussi dati streams, in LocalPort la porta TCP da porre in ascolto, in MaxConn il numero di connessioni contemporanee accettate.
Attivando il comando Enable il server TCP viene posto in ascolto sulla porta indicata, alla connessione di un client viene incrementato il numero di ConnPeers ed uno degli stream definiti in FileArr viene valorizzato ed aperto. Sullo stream aperto è possibile utilizzare le funzioni di TermIO per gestire la comunicazione.
Per modificare i parametri occorre disattivare e poi riabilitare il comando Enable.
Descrizione
Enable (BOOL) Comando abilitazione server.
FileArr (eFILEP) Pointer ad array streams di I/O. I vari file streams saranno valorizzati alla connessione dei clients. Occorre definire un numero di streams pari al numero di connessioni contemporanee accettate.
LocalAdd (@STRING) Range indirizzi IP da cui è accettata la connessione. La connessione è accettata se indirizzo IP del peer in AND con il valore non viene modificato. Default ‘0.0.0.0’: connessione accettata da tutti gli indirizzi IP.
LocalPort (UINT) Numero di porta cui viene posto in ascolto il server, verificare che la porta non sia già utilizzata da un’altro servizio.
MaxConn (USINT) Numero massimo di connessioni contemporanee accettate dal server. Deve essere uguale al numero di files definiti.
FlushTm (UINT) Tempo di flush dati (mS). Se non sono caricati dati sullo stream dopo il tempo definito i dati presenti vengono automaticamente inviati.
LifeTm (UINT) Tempo di vita socket (S), se non sono ricevuti o inviati dati dopo il tempo definito il socket viene automaticamente chiuso. Se definito tempo “0” il socket non viene mai chiuso.
RxSize (UINT) Dimensione buffer ricezione dati.
TxSize (UINT) Dimensione buffer trasmissione dati.
Enabled (BOOL) Attivo se TCP server correttamente impostato e pronto.
Fault (BOOL) Attivo se errore gestione.
ConnPeers (USINT) Numero di clients connessi al server.

Esempi
Come utilizzare gli esempi.
Nell’esempio è attivato un server TCP in ascolto sulla porta 3000. Il server accetta massimo 2 connessioni contemporanee, connettendosi in telnet alla porta inviando un carattere se ne riceve l’echo.
LogicLab (Ptp116, FBD_SysTCPServer)
