使用boost::make_connected建立网络连接的示例程序

144 篇文章 ¥59.90 ¥99.00
本文展示了如何使用boost库中的make_connected()函数创建TCP连接。通过包含boost头文件,定义IP地址和端口号,创建IO服务和套接字对象,调用make_connected()建立连接,最终实现与127.0.0.1:8080的连接。成功连接后,程序会输出'Connection established!'。

使用boost::make_connected建立网络连接的示例程序

boost库提供了许多实用的工具和函数,其中之一就是make_connected()函数,该函数可以用来建立网络连接。下面我们来看一个简单的示例程序。

首先,在我们的程序中需要包含boost库中相应的头文件,代码如下:

#include <boost/asio.hpp>
#include <iostream>

然后,我们需要定义IP地址和端口号,以建立相应的连接。这里我们假设要连接的IP地址为127.0.0.1(即本地主机),端口号为8080。定义代码如下:

boost::asio::ip::tcp::endpoint ep(
    boost::asio::ip::address_v4::from_string("127.0.0.1"), 8080);

接下来,我们需要创建一个IO服务对象和一个套接字对象,通过make_connected()函数将套接字对象连接到指定的端点。这里我们将IO服务对象和套接字对象定义为指针类型,以便在程序中灵活运用。代码如下:

boost::asio::io_service* io_service = new boost::asio::io_service();
boost::asio::ip::tcp::socket* socket = new boost::asio::ip::tcp::socket(*io_service);
boost::asio::connect(*socket, boost::asio::ip::tcp::resolv
linux QT4调用websocket库环境,代码如下 {//ws websocket_tpye = websocket_no_tls; if(m_init) { m_init = false; _client_no_tls.clear_access_channels(websocketpp::log::alevel::all); _client_no_tls.clear_error_channels(websocketpp::log::elevel::all); _client_no_tls.init_asio(); _client_no_tls.start_perpetual(); client_thread = websocketpp::lib::make_shared<websocketpp::lib::thread>(&client_no_tls::run, &_client_no_tls); } websocketpp::lib::error_code ec; client_no_tls::connection_ptr con = _client_no_tls.get_connection(uri, ec); if (ec) { QDEBUG<<" could not create connection because:"<<QString::fromStdString(ec.message()); return -1; } metadata_no_tls = websocketpp::lib::make_shared<connection_metadata_no_tls>(con->get_handle(), uri); if(QString::fromStdString(password).isEmpty()) { } else { std::string val = "Basic "+base64_encode(QString::fromStdString(devnumber)+":"+QString::fromStdString(password)); con->append_header("Authorization", val); } con->set_open_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_open, metadata_no_tls, &_client_no_tls, websocketpp::lib::placeholders::_1 )); // con->set_pong_timeout(10); // con->set_pong_timeout_handler(websocketpp::lib::bind( // &connection_metadata_no_tls::on_ping, // metadata_no_tls, // &_client_no_tls, // websocketpp::lib::placeholders::_1 // )); con->set_fail_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_fail, metadata_no_tls, &_client_no_tls, websocketpp::lib::placeholders::_1 )); con->set_close_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_close, metadata_no_tls, &_client_no_tls, websocketpp::lib::placeholders::_1 )); con->set_message_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_message, metadata_no_tls, websocketpp::lib::placeholders::_1, websocketpp::lib::placeholders::_2 )); _client_no_tls.connect(con); } },如何实现定时推送ping功能
07-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值