Discussion:
probleme stream_socket_sendto
(trop ancien pour répondre)
bertrand
2009-11-06 20:03:28 UTC
Permalink
Bonjour,

Pour faire vite, j'envoie des données (souvent) avec
stream_socket_sendto mais le soucis c'est que du coté reception, je n'ai
pas toujours tout. Une capture avec wireshark et je vois un TCP window
full. Après une petite recherche sur google, il semblerai que le client
(reception) n'arrive pas à traiter les data aussi vite sur le serveur
(émission) les envois.

Ma question : peut on gérer cela du coté serveur (émission) en php avec
une fonction, une entête, un petit quelque chose quoi ???

Merci pour vos réponses,

Matt...
Olivier Miakinen
2009-11-08 23:26:50 UTC
Permalink
Bonjour,
Post by bertrand
Pour faire vite, j'envoie des données (souvent) avec
stream_socket_sendto mais le soucis c'est que du coté reception, je n'ai
pas toujours tout. Une capture avec wireshark et je vois un TCP window
full. Après une petite recherche sur google, il semblerai que le client
(reception) n'arrive pas à traiter les data aussi vite sur le serveur
(émission) les envois.
Ma question : peut on gérer cela du coté serveur (émission) en php avec
une fonction, une entête, un petit quelque chose quoi ???
D'après mes souvenirs de TCP, tu ne devrais rien avoir à faire, c'est le
protocole qui devrait tout gérer. Sauf bien sûr si tu quittes le script
avant que tout ne soit transféré, mais il me semble que c'est le rôle de
la fonction fclose() de ne te rendre la main que lorsque tout a été
transmis (ou après un timeout, mais il peut être relativement long).
Tu fais bien un fclose() avant de faire exit() ou d'arriver au bout du
script ? Par ailleurs, la socket est-elle ouverte en mode non bloquant ?

Enfin, saurais-tu écrire un code minimal qui présente le même bug, et le
joindre à une prochaine réponse ?
--
Olivier Miakinen
Continuer la lecture sur narkive:
Loading...