有谁能辨别我在这里做错了什么?根据1.47中的文档,basic_datagram_socket继承自basic_socket,因此应继承non_blocking()或non_blocking(bool)。 感谢
错误1错误C2039:'non_blocking':不是'boost :: asio :: basic_datagram_socket'的成员c:\ DEV \ projects \ topoTest \ topoTest \ multiReceiver.cpp 129
这是电话。 socket_.non_blocking(真);
并且套接字在类中定义如下:
boost :: asio :: ip :: udp :: socket socket_;
答案 0 :(得分:2)
成员函数boost::asio::ip::udp::socket::non_blocking()
似乎是1.47中的新功能。它实际上并不存在于1.47中,或者您实际上使用的是较旧的标题。我建议找到包含的<boost/asio/basic_datagram_socket.hpp>
标头,看它是否确实将该成员函数作为basic_datagram_socket
类的一部分。如果没有,你可以像Steve Townsend在他的回答中所说的那样以旧的方式做到这一点。
我刚刚下载了Boost 1.47,发现basic_datagram_socket
从non_blocking()
继承了basic_socket
。它看起来像你实际上没有Boost 1.47。