Struct lazy_socket::raw::Socket [] [src]

pub struct Socket { /* fields omitted */ }

Raw socket

Methods

impl Socket
[src]

[src]

Initializes new socket.

Corresponds to C connect()

[src]

Returns underlying socket descriptor.

Note: ownership is not transferred.

[src]

Retrieves socket name i.e. address

Wraps getsockname()

Available for binded/connected sockets.

[src]

Binds socket to address.

[src]

Listens for incoming connections on this socket.

[src]

Receives some bytes from socket

Number of received bytes is returned on success

[src]

Receives some bytes from socket

Number of received bytes and remote address are returned on success.

[src]

Sends some bytes through socket.

Number of sent bytes is returned.

[src]

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.

[src]

Accept a new incoming client connection and return its files descriptor and address.

By default the newly created socket will be inheritable by child processes and created in blocking I/O mode. This behaviour can be customized using the flags parameter:

  • AcceptFlags::NON_BLOCKING – Mark the newly created socket as non-blocking
  • AcceptFlags::NON_INHERITABLE – Mark the newly created socket as not inheritable by client processes

Depending on the operating system's availability of the accept4(2) system call this call either pass the flags on to the operating system or emulate the call using accept(2).

[src]

Accept a new incoming client connection and return its files descriptor and address.

As this uses the classic accept(2) system call internally, you are strongly advised to use the .accept4() method instead to get defined blocking and inheritance semantics for the created file descriptor.

[src]

Connects socket with remote address.

[src]

Retrieves socket option.

[src]

Sets socket option

Value is generally integer or C struct.

[src]

Sets I/O parameters of socket.

[src]

Sets non-blocking mode.

[src]

Sets whether this socket will be inherited by newly created processes or not.

Internally this is implemented by calling fcntl(fd, F_GETFD) and fcntl(fd, F_SETFD) to update the FD_CLOEXEC flag. (In the future this might use ioctl(2) on some platforms instead.)

This means that the socket will still be available to forked off child processes until it calls execve(2) to complete the creation of a new process. A forking server application (or similar) should therefore not expect this flag to have any effect on spawned off workers; you're advised to manually call .close() on the socket instance in the worker process instead. The standard library's std::process facility is not impacted by this however.

[src]

Returns whether this will be inherited by newly created processes or not.

See set_inheritable for a detailed description of what this means.

[src]

Stops receive and/or send over socket.

[src]

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]

[src]

Executes the destructor for this type. Read more

impl AsRawFd for Socket
[src]

[src]

Extracts the raw file descriptor. Read more

impl FromRawFd for Socket
[src]

[src]

Constructs a new instance of Self from the given raw file descriptor. Read more

impl IntoRawFd for Socket
[src]

[src]

Consumes this object, returning the raw underlying file descriptor. Read more