#include <iostream>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
int main() {
try {
boost::asio::io_context io_context;
// 创建一个 TCP acceptor,监听本地的 12345 端口
tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 12345));
std::cout << "Server started. Listening on port 12345...\n";
while (true) {
// 等待客户端连接
tcp::socket socket(io_context);
acceptor.accept(socket);
std::cout << "Client connected: " << socket.remote_endpoint() << std::endl;
// 读取数据并实时打印
boost::asio::streambuf receive_buffer;
while (boost::asio::read(socket, receive_buffer, boost::asio::transfer_at_least(1))) {
std::cout << "Received: " << &receive_buffer << std::endl;
receive_buffer.consume(receive_buffer.size());
std::string reply = "Hello, client!";
// 回复客户端,会阻塞
socket.send(boost::asio::buffer(reply));
// 回复客户端,不阻塞
boost::asio::write(socket, boost::asio::buffer(reply));
}
}
} catch (std::exception &e) {
std::cerr << "Exception: " << e.what() << std::endl;
}
return 0;
}
C++:使用boost创建TCP服务
于 2024-04-10 09:05:42 首次发布