Bonjour,
J'ai programmé un petit (enfin ça fait quand même 500 lignes au total) programme permettant d'envoyer le flux de la webcam et du microphone au travers un socket (je l'ai déjà fait séparément en tout cas). J'ai évidemment pensé au décodage des données à l'arrivée. Mais si ça marche à peu près au sein d'un même ordinateur, dès qu'on communique au sein d'un réseau local, les quantités astronomiques de bytes envoyés ne sont pas toutes reçues, du moins pas convenablement. Pour vous donner un ordre d'idée, j'envois à peu près 4000 bytes tous les 50èmes de secondes pour l'audio et un million tous les 25e de seconde pour la vidéo. Le truc, c'est que si toutes les données sont envoyées, le résultat à l'arrivée est... étrange.
J'ai parfois beaucoup moins de données que je devrais normalement recevoir et le coup d'après deux fois plus. Je ne suis pas expert du réseau et je ne connais que les choses basiques mais j'en ai déduis que les données sont envoyées sur le socket et mise "en attente". Lorsque l'on fait recv, toutes les données en attente sont prises. Donc du coup, ça veut dire que la fonction recv est plutôt lente puisque les données sont envoyées plus vite qu'elles ne sont reçues ! Du coup, je demande des conseils afin de pouvoir envoyer toutes mes données convenablement.
Merci d'avance.
Partager