Skip to content

Produces a std::net::TCPStream bound to a specified local address (Unix only).

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

46bit/bind_before_connect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bind_before_connect

In older network protocols or when using multiple IP Addresses, one wants to open a connection to a remote host using a specific local port and/or a specific local IP address. In other words you want to specify the local source address.

This can be done using the bind syscall (commonly used to specify the binding address for servers) followed by the connect syscall (commonly used to connect to a remote server). This sequence of syscalls is termed Bind Before Connect.

The constructor of Rust's std::net::TcpStream does not allow specifying a particular local address. It picks a random high port to use. This crate constructs a bound socket then converts it to a std::net::TcpStream for you to use as normal.

At present only Unix-based systems are supported. An implementation for Windows/etc would be very much welcomed.

Usage examples

See examples/simple.rs and run cargo run --example simple.

About

Produces a std::net::TCPStream bound to a specified local address (Unix only).

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages