以下是一个使用Boost.Beast库在C++中创建本地WebSocket连接的示例代码:
#include <boost/beast/core.hpp>
#include <boost/beast/websocket.hpp>
#include <iostream>
namespace websocket = boost::beast::websocket;
using tcp = boost::asio::ip::tcp;
int main()
{
try
{
boost::asio::io_context io_context;
// 创建 WebSocket 连接对象
websocket::stream<tcp::socket> ws(io_context);
// 建立连接到本地 WebSocket 服务器
ws.next_layer().connect(tcp::endpoint(tcp::v4(), 8000));
// 设置升级到 WebSocket 协议
ws.handshake("localhost", "/");
std::string message = "Hello, WebSocket!";
// 发送消息到服务器
ws.write(boost::asio::buffer(message));
// 接收从服务器返回的消息
boost::beast::flat_buffer buffer;
ws.read(buffer);
std::cout << "Received: " << boost::beast::buffers_to_string(buffer.data()) << std::endl;
// 关闭 WebSocket 连接
ws.close(websocket::close_code::normal);
}
catch (const std::exception& ex)
{
std:cerr << ex.what() << std:endl;
}
return 0;
}
上述代码首先创建了一个 websocket 对象,并通过 next_layer() 函数获取底层的 tcp socket 对象。然后,使用 connect() 函数建立与本地 WebSocket 服务器的连接,并通过 handshake() 函数将连接升级为 WebSocket 协议。
接下来,发送一条消息到服务器并等待服务器返回的消息。最后,使用 close() 函数关闭 WebSocket 连接。
请注意,这只是一个简单的示例,你可以根据实际需求进行更复杂和完善的实现。同时,确保已经安装了 Boost 库并将其链接到你的项目中。
希望对你有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问




