【问题标题】:‘acceptor’ is not a member of ‘boost::asio::ip::udp’ while migration from tcp to udp当从 tcp 迁移到 udp 时,“acceptor”不是“boost::asio::ip::udp”的成员
【发布时间】:2018-08-17 12:02:08
【问题描述】:

我有 tcp 套接字。 这是它的一侧外观:

using boost::asio::ip::tcp;

tcp::socket socket(service);
tcp::acceptor acceptor(service, tcp::endpoint(tcp::v4(), port));
acceptor.accept(socket_);

// send something
socket.write_some(boost::asio::buffer(&(*sbBuf.begin()), len)); 

另一方面:

using boost::asio::ip::tcp;

tcp::socket socket(service);
tcp::resolver resolver(service);
tcp::resolver::query query2(udp::v4(), host, portStr);
tcp::resolver::iterator iterator = resolver.resolve(query);
boost::asio::connect(socket , iterator);
//receive something
size_t len = socket.receive(boost::asio::buffer((void *)&(*(v.begin())), DEFAULT_BUFLEN));

现在我需要将tcp 更改为udp。 我将所有boost::asio::ip::tcp:: 前缀更改为boost::asio::ip::udp::。 我使用send 而不是write_some

现在我遇到了下一个错误‘acceptor’ is not a member of ‘boost::asio::ip::udp’

我试图找到一些示例,但找不到好的示例来理解我可以使用什么来代替 acceptor

【问题讨论】:

  • 很难接受不存在的东西。 UDP 是无连接的

标签: c++ sockets tcp udp boost-asio


【解决方案1】:

没有什么诸如 UDP 的接受器,请阅读 UDP 和 TCP 连接之间的区别。或/并查看UDP communication using c++ boost asio

here 也是一个不错的总结

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2012-05-25
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多