-
Base64 et Sockets
Bonjour,
J'essaie de transferer via TServerSocket / TClientSocket des fichiers de tous types (texte, audio, vidéos etc.).
J'arrive bien à envoyer la quantité de données attendues (les fichiers reçus sont donc exactement de la même taille que ceux envoyés) mais, en revanche, les données sont complétement erronnées ! :roll: Les fichiers sont inutilisables.
Pour contourner ce problème j'ai vu qu'il était possible de passer par un encodage / décodage de type Base64. Qu'en pensez vous ? Et existe-t'il un composant capable de réaliser cette tâche sous BDS 2006 ?
J'ai trouvé quelques codes source pour réaliser cette opération, mais tous encodent à partir d'un fichier et créent un nouveau fichier... et cette solution n'est pas très pratique pour les gros fichiers...
En tout cas merci pour votre aide :)
-
Je ne vois pas de raison d'encoder les fichiers.
Je n'utilise pas les composants en question. Je te suggère d'essayer avec les composants Indy ou ICS.
-
Les composants de BDS sont simples à utiliser... il me "semble" que ce serait plus difficile de changer pour d'autres composants; une fois le fichier encodé en Base64, il suffit de le faire passer comme du texte, et une fois le transfert fini, de le décoder.
Pour les petits fichiers pas de problème, mais mon souci ce serait plutôt pour les gros fichiers : côté serveur 1 fichier de 500 Mo, une fois encodé est encore plus volumineux et prend de la place sur le disque... l'idéal serait d'encoder à la volée juste le bloc de données qui va être transféré. Enfin je ne sais pas trop :D