Será que os dados de sockets precisam ser erro corrigido?
-
07-07-2019 - |
Pergunta
Ao usar a comunicação de soquete em PHP, que eu preciso para confirmar se a mensagem foi recebida com sucesso após o envio de cada mensagem? Ou será que a camada de transporte (TCP) cuidar de detecção e correção de erros, garantindo a entrega bem sucedida de todas as mensagens enviadas?
Solução
Você não precisa se preocupar com tais coisas a este nível. Depois de gravar os dados em um soquete aberto, você pode ter certeza que ele acabará por chegar corretamente (assumindo que há uma rota entre os pontos finais). O que você deve tomar cuidado é os valores de retorno de funções de soquete. Verifique todas valores de retorno das funções socket_*
para uma comunicação confiável.
Outras dicas
O TCP detecção e correção de erros, tanto quanto ele vai. Não há realmente tal coisa a como garantindo entrega bem sucedida (cf. retroescavadeira desvanecimento ), por isso há algum nível em que você precisa levar em conta a possibilidade de que a mensagem não será entregue.
Você pode acreditar seguramente que os dados foram recebidos com sucesso se a função php não apontar qualquer erro específico.
"TCP fornece entrega confiável, ordenada de um fluxo de bytes de um programa em um computador para outro programa em outro computador ", de modo que é um sim a este último.