ConnectToServer - Metodo

Panoramica

Tipo:

Metodo

Disponibile a partire da:

V1.0.0.0

G-SE-0076329.2.gif-high.gif

 

 

Task

Il metodo ConnectToServer inizia la connessione TCP al server.

Descrizione funzionale

Questo metodo consente di iniziare a stabilire una connessione TCP al server, specificato dal proprio indirizzo IPv4 e dalla porta corrispondente. Le porte standard per HTTP sono 80 e 443 (protette, HTTPS). Impostare il parametro i_xUseTls a TRUE per specificare che si deve stabilire una connessione protetta.

Il valore di restituzione di questo metodo indica solo se è stato possibile iniziare correttamente la connessione o meno. Lo stato della connessione deve essere verificato tramite la proprietà State. Valutare le uscite di diagnostica del metodo, nel caso in cui il valore di restituzione sia FALSE. Non è necessario azzerare un errore indicato da queste uscite.

Considerazioni per l'uso con un proxy HTTP

Se è presente un proxy HTTP tra il controller e il server HTTP remoto, occorre specificare i parametri di connessione del proxy nel metodo ConnectToServer. Se il client è collegato al proxy, il traffico HTTP viene inoltrato tra il client e il server remoto tramite il server proxy. L'indirizzo e la porta vengono ottenuti dal server proxy dall'intestazione della richiesta HTTP inviata, corrispondenti al parametro i_sHost del metodo corrispondente per l'invio di una richiesta HTTP.

NOTA: Per ulteriori informazioni, consultare il Codice di esempio.

Considerazioni per connessioni protette che utilizzano TLS

TLS viene utilizzato per cifrare la comunicazione tra client e server. Oltre alla cifratura, TLS fornisce la possibilità di verificare l'identità del partner di comunicazione mediante i certificati.

I certificati vengono scambiati quando si stabilisce una connessione, questa attività viene detta handshake TLS. L'invio di certificati durante l'handshake TLS è facoltativo, ma se il partner di comunicazione ne richiede uno, il suo invio è obbligatorio. Solo se il risultato della verifica del certificato è positiva, è possibile stabilire una connessione con il partner di comunicazione. Se l'esecuzione del metodo ConnectToServer con xUseTls = TRUE termina con lo stato Error con ErrorResult = ConnectFailed, potrebbe essere presente un certificato emesso.

In questo caso, verificare la configurazione TLS del server e del client.

Se...

In questo caso...

Se il server è configurato per verificare il certificato del client.

Assicurarsi che il parametro i_stTlsSettings.xSendClientCertificate sia impostato su TRUE.

Se il client è configurato per verificare il certificato del server, i_stTlsSettings.etCertVerifyMode è diverso da NotVerified.

Assicurarsi che il server invii il proprio certificato.

Se il client è configurato per accettare solo certificati attendibili, i_stTlsSettings.etCertVerifyMode = TrustedOnly,

Assicurarsi che il certificato del server sia attendibile.

Per questo, è richiesto gestire i certificati sul controller manualmente, mediante l'editor Schermo di sicurezza in Machine Expert Logic Builder.

Per ulteriori informazioni sulla gestione dei certificati sul controller, consultare Come gestire i certificati sul controller in EcoStruxure Machine Expert - Guida dell'utente.

Transizione di stato del client

Fase

Descrizione

1

Stato iniziale: Idle

2

Chiamata di funzione

3

Stato: Connecting, in caso contrario viene rilevato un errore

4

Stato finale: Connected, in caso contrario viene rilevato un errore

Interfaccia

Ingresso

Tipo di dati

Descrizione

i_sServerIP

STRING[15]

Specifica l'indirizzo IP del server a cui connettersi.

i_uiServerPort

UINT

Specifica l'indirizzo della porta del server.

i_xUseTls

BOOL

Impostare a TRUE per specificare l'uso di una connessione protetta che utilizza TLS.

i_stTlsSettings

TlsSettings

Specifica le impostazioni TLS per la connessione protetta.

Uscita

Tipo di dati

Descrizione

q_xError

BOOL

Se questa uscita è impostata su TRUE, è stato rilevato un errore. Per informazioni, consultare q_etResult e q_etResultMsg.

q_etResult

ET_Result

Fornisce informazioni su stato e diagnostica come valore numerico.

q_sResultMsg

STRING[80]

Fornisce ulteriori informazioni su stato e diagnostica come messaggio di testo.