Struct lazy_socket::raw::Socket
[−]
[src]
pub struct Socket { /* fields omitted */ }Raw socket
Methods
impl Socket[src]
fn new(family: c_int, _type: c_int, protocol: c_int) -> Result<Socket>
Initializes new socket.
Corresponds to C connect()
fn raw(&self) -> RawSocket
Returns underlying socket descriptor.
Note: ownership is not transferred.
fn name(&self) -> Result<SocketAddr>
Retrieves socket name i.e. address
Wraps getsockname()
Available for binded/connected sockets.
fn bind(&self, addr: &SocketAddr) -> Result<()>
Binds socket to address.
fn listen(&self, backlog: c_int) -> Result<()>
Listens for incoming connections on this socket.
fn recv(&self, buf: &mut [u8], flags: c_int) -> Result<usize>
Receives some bytes from socket
Number of received bytes is returned on success
fn recv_from(&self, buf: &mut [u8], flags: c_int) -> Result<(usize, SocketAddr)>
Receives some bytes from socket
Number of received bytes and remote address are returned on success.
fn send(&self, buf: &[u8], flags: c_int) -> Result<usize>
Sends some bytes through socket.
Number of sent bytes is returned.
fn send_to(
&self,
buf: &[u8],
peer_addr: &SocketAddr,
flags: c_int
) -> Result<usize>
&self,
buf: &[u8],
peer_addr: &SocketAddr,
flags: c_int
) -> Result<usize>
Sends some bytes through socket toward specified peer.
Number of sent bytes is returned.
Note: the socket will be bound, if it isn't already.
Use method name to determine address.
fn accept4(&self, flags: AcceptFlags) -> Result<(Socket, SocketAddr)>
Accept a new incoming client connection and return its files descriptor and address.
This is an emulation of the corresponding Unix system call, that will automatically call
.set_blocking and .set_inheritable with parameter values based on the value of flags
on the created client socket:
AcceptFlags::NON_BLOCKING– Mark the newly created socket as non-blockingAcceptFlags::NON_INHERITABLE– Mark the newly created socket as not inheritable by client processes
fn accept(&self) -> Result<(Socket, SocketAddr)>
Accepts incoming connection.
fn connect(&self, addr: &SocketAddr) -> Result<()>
Connects socket with remote address.
fn get_opt<T>(&self, level: c_int, name: c_int) -> Result<T>
Retrieves socket option.
fn set_opt<T>(&self, level: c_int, name: c_int, value: T) -> Result<()>
Sets socket option
Value is generally integer or C struct.
fn ioctl(&self, request: c_int, value: c_ulong) -> Result<()>
Sets I/O parameters of socket.
It uses ioctlsocket under hood.
fn set_blocking(&self, value: bool) -> Result<()>
Sets non-blocking mode.
fn set_inheritable(&self, value: bool) -> Result<()>
Sets whether this socket will be inherited by child processes or not.
Internally this implemented by calling SetHandleInformation(sock, HANDLE_FLAG_INHERIT, …).
fn get_inheritable(&self) -> Result<bool>
Returns whether this socket will be inherited by child processes or not.
fn shutdown(&self, direction: ShutdownType) -> Result<()>
Stops receive and/or send over socket.
fn close(&self) -> Result<()>
Closes socket.
Note: on Drop socket will be closed on its own.
There is no need to close it explicitly.
Trait Implementations
impl Drop for Socket[src]
impl AsRawSocket for Socket[src]
fn as_raw_socket(&self) -> RawSocket
Extracts the underlying raw socket from this object.
impl FromRawSocket for Socket[src]
unsafe fn from_raw_socket(sock: RawSocket) -> Self
Creates a new I/O object from the given raw socket. Read more
impl IntoRawSocket for Socket[src]
fn into_raw_socket(self) -> RawSocket
Consumes this object, returning the raw underlying socket. Read more