Je suis en train de créer une application "réseau" composée de 3 parties : client, serveur, protocole.
Ces 3 parties sont aussi 3 projet différents sur Eclipse.
Les projets client et serveur utilisent le projet protocole.
(C'est une application de type contrôle à distance, mais ce n'est pas important ici).
Pour le moment, la partie protocole utilise UDP pour plusieurs raisons :
- latence plus faible (il parait)
- découpage en "paquet" plus facile qu'en TCP (mais j'espère me tromper)
Mais j'ai plusieurs problèmes avec UDP, et je vais peut être finalement utiliser TCP :
- j'ai des pertes de paquets un peu gênantes
- un bug sur ma plateforme "client" (Android), m'empeche de recevoir en UDP.
Tout mon protocole est basé sur des données "binaires". Pas de texte, pas de xml. Je manipule les données grâce à la classe ByteBuffer.
J'ai donc des questions en ce qui concerne cette migration UDP vers TCP
Jusqu'à présent, pour une action "bouger la souris de tant de pixels", j'envoyais un paquet UDP.
Comment reproduire la même notion de "paquet" dans TCP? Je crois que TCP fonctionne sur un système de "flux" continu.
J'ai pensé à inclure avant chaque "action" envoyée, la taille en octets de cette action.
Comment "forcer" l'envoi de "données en cache" dans TCP (pour éviter d'attendre qu'un buffer soit rempli avant l'envoie des données)? La latence est primordiale dans mon application :p
Merciiii
Partager