Function connect

Source
pub fn connect<S>(server: &mut S, destination: SocketAddr) -> Result<SocketAddr>
where S: Read + Write,
Expand description

Connects to an arbitrary network destination via a SOCKS5 server.

The SOCKS5 server is specified by a TCP socket which is already connected to the SOCKS5 server.

ยงExamples

Connect to the web server at example.org:80 via a local Tor SOCKS5 proxy at 127.0.0.1:9050, issue a GET command, read and print the response:

use std::{
    io::{Write, Read},
    net::TcpStream,
};
use koibumi_net::{
    domain::{Domain, SocketDomain},
    socks::SocketAddr as SocksSocketAddr,
};
use koibumi_socks_sync as socks;

let mut stream = TcpStream::connect("127.0.0.1:9050")?;

let destination = SocksSocketAddr::Domain(
    SocketDomain::new(
        Domain::new("example.org").unwrap(), 80.into()));

let _dest = socks::connect(&mut stream, destination)?;

stream.write_all(b"GET /\n")?;

let mut bytes = Vec::new();
stream.read_to_end(&mut bytes)?;
print!("{}", String::from_utf8_lossy(&bytes));