I want to send a file in C++ over network (for a chat program) what should I do?
-
1see http://stackoverflow.com/questions/2014033/send-file-in-socket-programing-in-linux-with-c-c – Idan K Jan 19 '10 at 07:37
5 Answers
Take a look at http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/examples.html . The Iostreams example should give you the first good step. Asio is a portable network library of the boost project. Boost is available for most platforms available today.
You can stream in the file and stream out it into the TCP stream.

- 406
- 3
- 9
Use Open source FTP library for more robust application .Read this thread for c++ based open soruce library.
-
I couldn't disagree more. FTP has a lot of inherent problems (especially nowadays with all the NATs in the way) and certainly should be avoided for new applications. – avakar Jan 19 '10 at 08:58
Its quite easy. Set up a TCP/IP socket and then split the file into packets and send them across. TCP is reliable thus all the packets will arrive in the right order and it will handle re-transmission etc.
If, however, you need to use an unreliable transport (such as UDP) then look at stop and wait (Easiest), go-back-n or selective repeat (Which are both somewhat harder but far more efficient).

- 61,365
- 24
- 124
- 204
You will be doing something called socket programming. Please refer Beej's Guide to Networking for all the details and the solution to your problem.