views:

132

answers:

5

I want to send a file in C++ over network (for a chat program) what should I do?

A: 

You can open a direct connection between the two and send the content the file. For that, one side will be the client and the other will be the sender.

You can see a simple implementation here.

Am
+4  A: 

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.

Damg
+1  A: 

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.

Amit
A: 

Use Open source FTP library for more robust application .Read this thread for c++ based open soruce library.

sat
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
thanks for updating me .
sat
+1  A: 

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).

Goz