Struct net2::TcpBuilder
source · [−]pub struct TcpBuilder { /* private fields */ }
Expand description
An “in progress” TCP socket which has not yet been connected or listened.
Allows configuration of a socket before one of these operations is executed.
Implementations
sourceimpl TcpBuilder
impl TcpBuilder
sourcepub fn new_v4() -> Result<TcpBuilder>
pub fn new_v4() -> Result<TcpBuilder>
Constructs a new TcpBuilder with the AF_INET
domain, the SOCK_STREAM
type, and with a protocol argument of 0.
Note that passing other kinds of flags or arguments can be done through
the FromRaw{Fd,Socket}
implementation.
sourcepub fn new_v6() -> Result<TcpBuilder>
pub fn new_v6() -> Result<TcpBuilder>
Constructs a new TcpBuilder with the AF_INET6
domain, the SOCK_STREAM
type, and with a protocol argument of 0.
Note that passing other kinds of flags or arguments can be done through
the FromRaw{Fd,Socket}
implementation.
sourcepub fn bind<T>(&self, addr: T) -> Result<&TcpBuilder> where
T: ToSocketAddrs,
pub fn bind<T>(&self, addr: T) -> Result<&TcpBuilder> where
T: ToSocketAddrs,
Binds this socket to the specified address.
This function directly corresponds to the bind(2) function on Windows and Unix.
sourcepub fn listen(&self, backlog: i32) -> Result<TcpListener>
pub fn listen(&self, backlog: i32) -> Result<TcpListener>
Mark a socket as ready to accept incoming connection requests using accept()
This function directly corresponds to the listen(2) function on Windows and Unix.
An error will be returned if listen
or connect
has already been
called on this builder.
sourcepub fn connect<T>(&self, addr: T) -> Result<TcpStream> where
T: ToSocketAddrs,
pub fn connect<T>(&self, addr: T) -> Result<TcpStream> where
T: ToSocketAddrs,
Initiate a connection on this socket to the specified address.
This function directly corresponds to the connect(2) function on Windows and Unix.
An error will be returned if listen
or connect
has already been
called on this builder.
sourcepub fn to_tcp_stream(&self) -> Result<TcpStream>
pub fn to_tcp_stream(&self) -> Result<TcpStream>
Converts this builder into a TcpStream
This function will consume the internal socket and return it re-wrapped
as a TcpStream
. An error will be returned if the internal socket has
already been consumed from a successful call to connect
, listen
,
etc.
sourcepub fn to_tcp_listener(&self) -> Result<TcpListener>
pub fn to_tcp_listener(&self) -> Result<TcpListener>
Converts this builder into a TcpListener
This function will consume the internal socket and return it re-wrapped
as a TcpListener
. An error will be returned if the internal socket has
already been consumed from a successful call to connect
, listen
,
etc.
sourcepub fn local_addr(&self) -> Result<SocketAddr>
pub fn local_addr(&self) -> Result<SocketAddr>
Returns the address of the local half of this TCP socket.
An error will be returned if listen
or connect
has already been
called on this builder.
sourceimpl TcpBuilder
impl TcpBuilder
sourcepub fn ttl(&self, ttl: u32) -> Result<&Self>
pub fn ttl(&self, ttl: u32) -> Result<&Self>
Sets the value for the IP_TTL
option on this socket.
This is the same as TcpStreamExt::set_ttl
.
sourcepub fn only_v6(&self, only_v6: bool) -> Result<&Self>
pub fn only_v6(&self, only_v6: bool) -> Result<&Self>
Sets the value for the IPV6_V6ONLY
option on this socket.
This is the same as TcpStreamExt::set_only_v6
.
sourcepub fn reuse_address(&self, reuse: bool) -> Result<&Self>
pub fn reuse_address(&self, reuse: bool) -> Result<&Self>
Set value for the SO_REUSEADDR
option on this socket.
This indicates that further calls to bind
may allow reuse of local
addresses. For IPv4 sockets this means that a socket may bind even when
there’s a socket already listening on this port.
sourcepub fn get_reuse_address(&self) -> Result<bool>
pub fn get_reuse_address(&self) -> Result<bool>
Check the SO_REUSEADDR
option on this socket.
sourcepub fn take_error(&self) -> Result<Option<Error>>
pub fn take_error(&self) -> Result<Option<Error>>
Get the value of the SO_ERROR
option on this socket.
This will retrieve the stored error in the underlying socket, clearing the field in the process. This can be useful for checking errors between calls.
Trait Implementations
sourceimpl AsRawFd for TcpBuilder
impl AsRawFd for TcpBuilder
sourceimpl Debug for TcpBuilder
impl Debug for TcpBuilder
sourceimpl FromRawFd for TcpBuilder
impl FromRawFd for TcpBuilder
sourceunsafe fn from_raw_fd(fd: c_int) -> TcpBuilder
unsafe fn from_raw_fd(fd: c_int) -> TcpBuilder
Constructs a new instance of Self
from the given raw file
descriptor. Read more
sourceimpl UnixTcpBuilderExt for TcpBuilder
impl UnixTcpBuilderExt for TcpBuilder
sourcefn reuse_port(&self, reuse: bool) -> Result<&Self>
fn reuse_port(&self, reuse: bool) -> Result<&Self>
Set value for the SO_REUSEPORT
option on this socket. Read more
sourcefn get_reuse_port(&self) -> Result<bool>
fn get_reuse_port(&self) -> Result<bool>
Check the value of the SO_REUSEPORT
option on this socket.
Auto Trait Implementations
impl !RefUnwindSafe for TcpBuilder
impl Send for TcpBuilder
impl !Sync for TcpBuilder
impl Unpin for TcpBuilder
impl UnwindSafe for TcpBuilder
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more