处理插座Boost ASIO TCP IP -C 套接字编程

Handling socket boost asio tcp ip - C++ socket programming

本文关键字:套接字 编程 IP TCP 插座 Boost ASIO 处理      更新时间:2023-10-16

我正在成功建立连接,使用以下代码发送和接收消息。我想做的是以某种方式返回已经建立的连接。我认为我需要返回插座。在撰写此主题之前,我读了一些相关的主题 - 在其中一些主题中,有人提到返回插座不是一个好主意。这里建议使用共享。传递boost :: asio :: ip :: tcp :: socket不幸的是,我对这种指针及其用法不熟悉。您能帮我解决这个问题吗?

 try {
    boost::asio::io_service io_service;
    tcp::resolver resolver(io_service);
    tcp::resolver::query query(server, port);
    tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
    my_socket = new tcp::socket(io_service);
    boost::system::error_code error = boost::asio::error::host_not_found;
    boost::asio::connect(*my_socket, endpoint_iterator);

    } catch (std::exception& e) {
    std::cerr << e.what() << std::endl;
}

如果您的C 11或更高,请忽略所有关于共享指针的废话,然后返回套接字。从C 11开始,ASIO IO对象支持移动施工和移动分配。ASIO插座非常轻巧 - 该结构包含两个指针,仅此而已。 - 理查德·霍奇斯(Richard Hodges)