2010-01-19 3 views
0

Je veux envoyer un fichier en C++ sur le réseau (pour un programme de chat) que dois-je faire?envoyer le fichier par C++

+1

voir http://stackoverflow.com/questions/2014033/send-file-in-socket-programing-in-linux-with-c-c –

Répondre

4

Jetez un coup d'œil à http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/examples.html. L'exemple Iostreams devrait vous donner le premier bon pas. Asio est une bibliothèque réseau portable du projet boost. Boost est disponible pour la plupart des plates-formes disponibles aujourd'hui.

Vous pouvez diffuser dans le fichier et le diffuser dans le flux TCP.

0

Vous pouvez ouvrir une connexion directe entre les deux et envoyer le contenu du fichier. Pour cela, un côté sera le client et l'autre sera l'expéditeur.

Vous pouvez voir une implémentation simple here.

0

Vous ferez ce qu'on appelle la programmation de sockets. Veuillez consulter Beej's Guide to Networking pour tous les détails et la solution à votre problème.

1

Utiliser la bibliothèque FTP Open source pour une application plus robuste. Lire thread this pour la bibliothèque ouverte de cœurs.

+0

Je ne pouvais pas être en désaccord plus. FTP a beaucoup de problèmes inhérents (surtout de nos jours avec tous les NAT) et devrait certainement être évité pour les nouvelles applications. – avakar

+0

merci de me mettre à jour. – Satbir

1

C'est assez facile. Configurez un socket TCP/IP, puis divisez le fichier en paquets et envoyez-les. TCP est fiable, donc tous les paquets arriveront dans le bon ordre et traitera la ré-émission, etc.

Si, cependant, vous devez utiliser un transport non fiable (tel que UDP) alors regardez (plus facile), go-back-n ou selective repeat (qui sont à la fois un peu plus difficile mais beaucoup plus efficace).

Questions connexes