В C++, если у меня есть сокет, как я могу создать объект ostream из него?
Я погуглил некоторый пример: http://members.aon.at/hstraub/linux/socket++/docu/socket++_10.html
И я попробовал:
sockbuf sb(sockfd);
std::ostream outputStream(&sb);
Но я не могу найти, что.h файл и библиотека связываются с для 'sockbuf'. Та часть стандартной библиотеки C++?
Сайт, который вы нашли, является сторонней нестандартной библиотекой. Стандартной библиотеки сокетов на C++ нет.
Однако, если вы хотите получить как можно более близкое к стандартному (и мощное!) решение, вам следует попробовать Boost.Asio. Он был предложен для включения в стандартную библиотеку (TR2). Вот пример на основе iostream:
boost::asio::ip::tcp::iostream stream("www.example.org", "http");
stream << "GET / HTTP/1.0\r\nHost: www.boost.org\r\n\r\n" << std::flush;
std::string response;
std::getline( stream, response );
Однако, при использовании проактора Asio's Proactor для асинхронной работы, Вы получите гораздо больше.
Она не входит в стандартную библиотеку C++. Скачать Socket++ можно здесь: http://members.aon.at/hstraub/linux/socket++/ (это несколько каталогов из того, что вы вставили)
.Стандартный C++ (по крайней мере, C++98) никак не связан с сетевым взаимодействием. Поэтому вам придется делать что-то специфическое для конкретной платформы.
Некоторые платформы имеют реализацию IOStreams, которая позволяет вам создавать поток из дескриптора файла. В этом случае используйте дескриптор сокета в качестве дескриптора файла.