Il metodo ConnectToServer inizia la connessione TCP al server.
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 |
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 |
Fornisce informazioni su stato e diagnostica come valore numerico. |
|
q_sResultMsg |
STRING[80] |
Fornisce ulteriori informazioni su stato e diagnostica come messaggio di testo. |