Как отправить ostream сокетом в C ++? - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь отправить ostream, который содержит двоичные данные по сокетам в C ++.

Я использую Microsoft SEAL для развивается о шифровании.
Теперь мне нужно отправить зашифрованный текст с клиента на сервер. Microsoft SEAL предоставляет функцию

void Ciphertext::save(ostream &stream) const

для сериализации объекта Ciphertext в ostream, но после вызова

void Ciphertext::save(ostream &stream) const,

Я не знаю, как отправить зашифрованный текст (который находится в ostream) через сокет в клиенте (конечно, также не знаю, как получить на сервере).

Я пробовал решение , но, похоже, оно не могло работать, когда данные двоичные данные .

Я хотел бы знать, как написать код отправки ostream на клиенте и получения на сервере. Спасибо.

1 Ответ

0 голосов
/ 25 мая 2019

Вы можете передать его ostringstream, чтобы заполнить и извлечь из него строку, содержащую двоичные данные:

#include <sstream>
#include <string>
// ...
std::string save_into_string(Ciphertext const& ciphertext) {
    std::ostringstream s;
    ciphertext.save(s);
    return s.str();
}
...