2010-10-30 3 views
1

J'ai un serveur de socket qui écoute la connexion sur le port 5001, quand une connexion est acceptée et les données sont reçues je demande ma base de données pour créer un paquet de données dans un format particulier et le réécrire au client . Pour rendre la transmission de données plus fiable, je dois implémenter une réessai TCP en PHP, comment puis-je faire pour cela mon implémentation actuelle utilise une classe thread qui tire un thread pour vérifier et voir si ack a été reçu pour ce paquet jusqu'à expiration du délai, il se retire 3 fois jusqu'à expiration du délai, mais n'a pas de succès avec la même chose.TCP réessayer dans les sockets PHP

Existe-t-il une meilleure façon de mettre en œuvre le même.

+0

Si vous pouvez améliorer la fiabilité de TCP, alors vous êtes plus intelligent que 99,99% des gens ici. – skaffman

Répondre

2

Pour rendre la transmission de données plus fiables i doivent mettre en œuvre une nouvelle tentative TCP en PHP

Non, vous ne le faites pas. TCP est déjà fiable et il implémente déjà une nouvelle tentative. Et vous n'avez aucun moyen de savoir si un ACK a été reçu ou non, donc vous ne pouvez pas implémenter ce que vous avez décrit de toute façon. À moins que vous ne parliez d'ACK au niveau de l'application? Dans ce cas, vous devez clarifier votre question.

+0

Oui j'ai eu la question tout faux ou probablement avoir à reformuler la question. J'utilise essentiellement des sockets pour la communication avec un appareil distant, à partir de mon portail PHP. Maintenant, nous avons un protocole mis en œuvre qui aide dans le niveau de communication de l'application. Maintenant, quand la communication arrive, je dois implémenter une nouvelle tentative au niveau de l'application pour voir si j'ai reçu une réponse pour un paquet particulier basé sur le protocole que nous avons défini. – user160108

+0

Je ne comprends pas la question. Mieux que quoi? – EJP