代码拉取完成,页面将自动刷新
同步操作将从 Jack.arain/proxy 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
使用c++20协程,支持socks4/socks4a/socks5的server/client实现.
#include "socks/logging.hpp"
#include "socks/socks_server.hpp"
#include "socks/socks_client.hpp"
#include "socks/use_awaitable.hpp"
#include <boost/asio/io_context.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <memory>
namespace net = boost::asio;
using net::ip::tcp;
using namespace socks;
using server_ptr = std::shared_ptr<socks_server>;
net::awaitable<void> start_socks_server(server_ptr& server)
{
tcp::endpoint socks_listen(
net::ip::address::from_string("0.0.0.0"),
1080);
socks_server_option opt;
opt.usrdid_ = "jack";
opt.passwd_ = "1111";
auto executor = co_await net::this_coro::executor;
server =
std::make_shared<socks_server>(
executor, socks_listen, opt);
server->open();
co_return;
}
net::awaitable<void> start_socks_client()
{
auto executor = co_await net::this_coro::executor;
tcp::socket s(executor);
tcp::endpoint server_addr(
net::ip::address::from_string("127.0.0.1"),
1080);
// tcp socket connect to socks server.
boost::system::error_code ec;
co_await s.async_connect(server_addr, asio_util::use_awaitable[ec]);
if (ec)
{
LOG_WARN << "client connect to server: " << ec.message();
co_return;
}
// handshake and tell to socks server target.
socks::socks_client_option opt;
opt.target_host = "www.baidu.com";
opt.target_port = 80;
opt.proxy_hostname = true;
opt.username = "jack";
opt.password = "1111";
co_await socks::async_socks_handshake(s, opt, asio_util::use_awaitable[ec]);
if (ec)
{
LOG_WARN << "client handshake to server: " << ec.message();
co_return;
}
LOG_DBG << "completed socks handshake.";
// Next, do some http stuff with socket...
co_return;
}
int main()
{
net::io_context ioc(1);
server_ptr server;
co_spawn(ioc, start_socks_server(server), net::detached);
co_spawn(ioc, start_socks_client(), net::detached);
ioc.run();
return 0;
}
very easy to use!!!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。