I dati dei socket devono essere corretti?
-
07-07-2019 - |
Domanda
Quando utilizzo la comunicazione socket in PHP, devo confermare se un messaggio è stato ricevuto correttamente dopo aver inviato ciascun messaggio? Oppure il livello di trasporto (TCP) si occuperebbe del rilevamento e della correzione degli errori, garantendo la consegna corretta di tutti i messaggi inviati?
Soluzione
Non devi preoccuparti di queste cose a questo livello. Dopo aver scritto i dati in un socket aperto, si può essere certi che alla fine arriveranno correttamente (supponendo che ci sia un percorso tra i punti finali). Ciò di cui dovresti occuparti sono i valori di ritorno delle funzioni socket. Controlla tutti restituisce i valori delle funzioni socket_ *
per una comunicazione affidabile.
Altri suggerimenti
TCP gestisce il rilevamento e la correzione degli errori fino in fondo. Non esiste qualcosa come garantire una consegna di successo (cfr. backhoe dissolvenza ), quindi c'è un certo livello a cui devi tener conto della possibilità che un messaggio non venga recapitato.
Puoi tranquillamente credere che i dati siano stati ricevuti con successo se la funzione php non segnala alcun errore specifico.
" TCP fornisce la consegna affidabile e ordinata di un flusso di byte da un programma su un computer all'altro programma su un altro computer " , quindi questo è un sì per quest'ultimo.