c++ - boost.asio 测试问题

标签 c++ windows-xp boost-asio

我是 boost.asio 的新手。 我在尝试一个简单示例时遇到问题。

在我的头文件中我有:

#include <boost/asio.hpp>
#include "boost/bind.hpp"
#include "boost/date_time/posix_time/posix_time_types.hpp"

我需要这个私有(private)变量:

boost::asio::ip::udp::socket socket_;

我在编译时遇到这个错误:

error C2512: 'boost::asio::basic_datagram_socket<Protocol>' : no appropriate default constructor available
        with
        [
            Protocol=boost::asio::ip::udp

最佳答案

如果 found here,所有 UDP 套接字构造函数的列表.如您所见,您必须至少提供对 boost::asio::io_service 对象的引用。

如果这是私有(private)变量,请在类构造函数的初始化列表中提供此引用。以下将编译:

#include <boost/asio.hpp>
class Socket
{
    boost::asio::ip::udp::socket socket_;
 public:
    Socket( boost::asio::io_service& ioserv) : socket_(ioserv) {}
};
int main()
{
    boost::asio::io_service io;
    Socket s(io);
}

关于c++ - boost.asio 测试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5651295/

相关文章:

c++ - seekg() 没有按预期工作

c++ - 需要从 C++ 模板函数返回与此相同的类型

macos - Virtualbox 中的 Internet 连接无法正常工作(Mac OS X 主机/Windows XP guest )

Android 模拟器无法在 Windows XP 上启动

c++ - 使用 asio::async_read 时接收之间的延迟

c++ - 如果读取处理程序不会被调用,有什么方法可以知道在 async_read 函数中传输的字节数?

c++ - vector 的 undefined reference

c++ - 在 OpenCV 中将一个视频序列插入到另一个视频中

.net - 2000/XP机器,哪个Visual Studio + .NET Framework?

c++ - Asio UDP 套接字接收失败