c++ - 如何从套接字创建 'ostream'?

标签 c++ sockets

在 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 的 Proactor 进行异步操作,您将获得更多。

关于c++ - 如何从套接字创建 'ostream'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204458/

相关文章:

c++ - 反向打印数字

c++ - 错误 : expected unqualified-id before '||' token

C++如何从成员函数访问变量?

.net - .Net 中的套接字服务器、SocketAsyncEventArgs 和并发连接

c++ - 无法通过套接字发送或接收数据

c - 如何不接收错误子网的 UDP 数据报但仍然广播?

c++ - unordered_map<int,int> 如何处理负元素?

c++ - 是否可以对定义的常量使用#stringization?

java - Apache Thrift 可以在 Google App Engine 上使用吗?

c# - 如何使用套接字正确发送和接收字节/文件?