Witam wszystkich.
Napisałem sobie program, w którym serializuję klasę zawierającą vector<char>. Dane w wektorze to kolejne bajty pliku, ktory otwieram w trybie tekstowym. Problem polega na tym, że w momencie deserializacji zostaje wyrzucony wyjątek stream error. Mój kod wygląda mniej więcej tak:

//Odbieramy wiadomosc jaka zostala wyslana
			char buf[256];
			unsigned int len = 256;
			std::stringbuf buf1;
			while (len == 256) {
				len = socket.receive(boost::asio::buffer(buf));
				buf1.sputn(buf, len);
			}

			// odczytujemy odebrana wiadomosc
			std::string content = buf1.str();
			std::istream input(&buf1);

boost::archive::text_iarchive ia(input);
Messages::ResourcePart* ret_val_resprt = new Messages::ResourcePart();
			try {
				ia >> (*ret_val_resprt);
			} catch (boost::archive::archive_exception& e) {
				std::cerr << "produceMessage - corrupted archive (resource part)\nwhat: " << e.what() << std::endl;
			}
			return ret_val_resprt;

Co ciekawe wyjątek nie jest wyrzucany, jeśli po odebraniu do buf1 całej wiadomości wyświetlę ją poprzez std::cout<<buf1.str() - ale pliki ktore przesyłam i tak są uszkodzone. Ma ktoś jakiś pomysł o co może tutaj chodzić?