Boost logo

Boost Users :

Subject: [Boost-users] ASIO: What is the proper way to upload a LARGE file?
From: Ramon F Herrera (ramon_at_[hidden])
Date: 2011-01-13 11:11:47


I have successfully been using this code to upload small stuff:

try {
   // open tcp connection
   tcp::iostream net_stream(strSubmitServer, "12345");

   // send file name
   net_stream << strFile << endl;

   // copy file
   char ch;
   while ((ch = fgetc(f)) != EOF)
     net_stream << ch;

   } catch (std::exception& e) {
     std::cout << "Exception: " << e.what() << std::endl;
}

Needless to say, the code above is extremely slow/inefficient for bulky
transfers.

Now I need to upload some large fails, and tried this:

   tcp::iostream net_stream(SERVER_ADDR, "12345");
   // send file name
   net_stream << IN_FILE << "\n";
   // send tags data size
   net_stream << count << "\n";
   // copy tags data
   net_stream.write((char *)data, count); <<== app crashes here

I figured that TCP would break the delivery into packets...

TIA,

-Ramon


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net