有一个非常简单的socket
服务器由boost::asio
.
tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), port));
tcp::socket(io_service) sock;
a.accept(sock);
char data[1024];
boost::system::error_code error;
size_t length = sock->read_some(boost::asio::buffer(data), error);
std::cout << "Got: " << data << std::endl;
它的客户端看起来像:
size_t request_length = strlen(request);
boost::asio::write(s, boost::asio::buffer(request, request_length));
(均来自官方示例)
当我发送hello, world!
到套接字时,我Got: hello, world!
立即得到了。但它的缓冲区有 1024 个字节。它怎么知道什么时候读完?
编辑:
抱歉我的描述不佳。我的问题是如何read_some()
知道它何时应该返回。