# [−][src]Module nix::sys::socket

Socket interface functions

Further reading

## Modules

sockopt |

## Structs

AlgAddr |
CmsgIterator |
CmsgSpace | A structure used to make room in a cmsghdr passed to recvmsg. The size and alignment match that of a cmsghdr followed by a T, but the fields are not accessible, as the actual types will change on a call to recvmsg.
IpMembershipRequest | Request for multicast socket operations
Ipv4Addr |
Ipv6Addr |
Ipv6MembershipRequest | Request for ipv6 multicast socket operations
LinkAddr | Hardware Address
MsgFlags | Flags for send/recv and their relatives
NetlinkAddr |
RecvMsg |
SockFlag | Additional socket options
UnixAddr | A wrapper around `sockaddr_un`.
UnixCredentials | Unix credentials of the sending process.
cmsghdr |
msghdr |
sockaddr |
sockaddr_in |
sockaddr_in6 |
sockaddr_storage |
sockaddr_un |

## Enums

AddressFamily | These constants specify the protocol family to be used in `socket` and `socketpair`
ControlMessage | A type-safe zero-copy wrapper around a single control message, as used wih `sendmsg`. More types may be added to this enum; do not exhaustively pattern-match it.
ControlMessageOwned | A type-safe wrapper around a single control message, as used with `recvmsg`.
InetAddr |
IpAddr |
Shutdown |
SockAddr | Represents a socket address
SockLevel | The protocol level at which to get / set socket options. Used as an argument to `getsockopt` and `setsockopt`.
SockProtocol | Constants used in `socket` and `socketpair` to specify the protocol to use.
SockType | These constants are used to specify the communication semantics when creating a socket with `socket()`

## Traits

CmsgBuffer | A type that can be used to store ancillary data received by `recvmsg`
GetSockOpt | Represents a socket option that can be accessed or set. Used as an argument to `getsockopt`
SetSockOpt | Represents a socket option that can be accessed or set. Used as an argument to `setsockopt`

## Functions

accept | Accept a connection on a socket
accept4 | Accept a connection on a socket
bind | Bind a name to a socket
connect | Initiate a connection on a socket
getpeername | Get the address of the peer connected to the socket `fd`.
getsockname | Get the current address to which the socket `fd` is bound.
getsockopt | Get the current value for the requested socket option
listen | Listen for connections on a socket
recv | Receive data from a connection-oriented socket. Returns the number of bytes read
recvfrom | Receive data from a connectionless or connection-oriented socket. Returns the number of bytes read and the socket address of the sender.
recvmsg | Receive message in scatter-gather vectors from a socket, and optionally receive ancillary data into the provided buffer. If no ancillary data is desired, use () as the type parameter.
send | Send data to a connection-oriented socket. Returns the number of bytes read
sendmsg | Send data in scatter-gather vectors to a socket, possibly accompanied by ancillary data. Optionally direct the message at the given address, as with sendto.
sendto | Send a message to a socket
setsockopt | Sets the value for the requested socket option
shutdown | Shut down part of a full-duplex connection.
sockaddr_storage_to_addr⚠ | Return the appropriate `SockAddr` type from a `sockaddr_storage` of a certain size. In C this would usually be done by casting. The `len` argument should be the number of bytes in the `sockaddr_storage` that are actually allocated and valid. It must be at least as large as all the useful parts of the structure. Note that in the case of a `sockaddr_un`, `len` need not include the terminating null.
socket | Create an endpoint for communication
socketpair | Create a pair of connected sockets

## Type Definitions

sa_family_t |

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)