Tutorial :how divide herader from binary data



Question:

ofstream dest("test.txt",ios::binary);

 while (true){    size_t retval = recv (sd, buffer, sizeof(buffer), 0);       dest.write(buffer,retval);     if(retval <= 0) { delete[] buffer; break;}  }  

Now, the recv() function return 4 bytes each loop right? and buffer contain it, this return all data so, pseudo-header and binary data (image), but I want know how capture only binary data, I know that the end of header are "\n\r" right? but what's are the solution better for make this? I make a function that detect when are "\n\r"? and after how capture binary data? Or, I put all data in memory, and after parse it? but how? I'm desperate :(


Solution:1

recv will return however many bytes it can up to the maximum you've told it, which is sizeof(buffer). If that is 4, then that's what will probably be read most of the time.

The "end of header" and such makes no sense since you haven't provided the context necessary to interpret it. I'm guessing it has something to do with packet headers but each protocol is different so we have no way of knowing.


Solution:2

To convert individual characters to binary try this:

ofstream dest("test.txt",ios::binary);    while (true){        size_t retval = recv (sd, buffer, sizeof(buffer), 0);        //Convert individual chars to binary      // and output to file      for(int i=0; i < retval; ++i) {          dest << bitset<8>(buffer[i]);      }                if(retval <= 0) { delete[] buffer; break;}  }  

Make sure to add #include < bitset > to the file


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »