https://github.com/Stazer/beluga
https://github.com/Stazer/beluga
asio asynchronous boost cpp http https library proxy server tcp tls udp
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/Stazer/beluga
- Owner: Stazer
- License: mit
- Created: 2017-04-26T14:58:50.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-29T12:54:00.000Z (over 8 years ago)
- Last Synced: 2024-10-23T20:11:22.988Z (over 1 year ago)
- Topics: asio, asynchronous, boost, cpp, http, https, library, proxy, server, tcp, tls, udp
- Language: C++
- Homepage:
- Size: 94.7 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# beluga
## Examples
### Basic usage of tcp_server
boost::asio::io_service io_service;
auto server = beluga::tcp_server::create(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 8080));
server->on_accept.connect
([](beluga::tcp_server::accept_event& event)
{
auto client = beluga::tcp_client::create(event.get_socket());
});
server->accept();
io_service.run();
### Redirect all incomming http requests to 138.201.77.50:80 and print request headers
boost::asio::io_service io_service;
auto server = beluga::tcp_server::create(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 8080));
server->on_accept.connect
([] (beluga::tcp_server::accept_event& event)
{
auto client = beluga::http_client::create(event.get_socket());
auto server = beluga::tcp_client::create(client->get_socket().get_io_service());
beluga::tcp_tunnel<>::create(client, server);
client->on_request.connect
([server] (beluga::http_client::request_event& event)
{
for(auto i:event.get_request().get_headers())
std::cout << i.first << ": " << i.second << std::endl ;
server->connect(boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string("138.201.77.50"), 80));
});
client->receive();
});
server->accept();
io_service.run();