#include #include boost::asio::io_service io; boost::asio::io_service::work io_work(io); template bool poll_read(Socket& sock) { sock.non_blocking(true); //sock.native_non_blocking(true); boost::system::error_code ec; std::cout << "run read_some...\n"; sock.read_some(boost::asio::null_buffers(), ec); std::cout << "read_some done\n"; if (ec) std::cout << "ec: " << ec.message() << "\n"; return (!ec); } void test_sd(int fd) { boost::asio::posix::stream_descriptor sd(io,fd); poll_read(sd); } void test_inet(const boost::asio::ip::tcp::endpoint& ep) { boost::asio::ip::tcp::acceptor a(io, ep); boost::asio::ip::tcp::socket sock(io); a.accept(sock); std::cout << "accepted\n"; poll_read(sock); } int main() { test_sd(0); //test_inet(boost::asio::ip::tcp::endpoint(boost::asio::ip::address(), 12345)); }