Skip to main content

Module net

Module net 

Source
Expand description

Wrappers de la famille net — sockets synchrones.

Cf. docs/specs/layer-0/family-net.md.

Toutes les opérations de cette famille sont synchrones. Les variantes io_uring seront ajoutées au Temps 2b (ADR-022), en réutilisant les mêmes types.

Functions§

accept4
Accepte une connexion entrante.
bind
Lie un socket à une adresse locale.
connect
Initie une connexion vers un pair.
get_so_bindtodevice
Lit l’interface liée au socket.
get_so_error
Lit l’erreur socket en attente (SO_ERROR) et l’efface.
get_so_keepalive
Lit l’option SO_KEEPALIVE.
get_so_linger
Lit l’option SO_LINGER.
get_so_peercred
Lit les credentials du pair Unix (SO_PEERCRED).
get_so_rcvbuf
Lit la taille du buffer de réception (SO_RCVBUF).
get_so_reuseaddr
Lit l’option SO_REUSEADDR.
get_so_reuseport
Lit l’option SO_REUSEPORT.
get_so_sndbuf
Lit la taille du buffer d’envoi (SO_SNDBUF).
get_socket_option_int
Lit une option socket à valeur entière (getsockopt). Exposition publique de [getsockopt_i32] pour la face libc.
get_tcp_nodelay
Lit l’option TCP_NODELAY (désactivation de l’algorithme Nagle).
getpeername
Retourne l’adresse du pair connecté.
getsockname
Retourne l’adresse locale du socket.
join_multicast_v4
Rejoint un groupe multicast IPv4 (IP_ADD_MEMBERSHIP, struct ip_mreq).
join_multicast_v6
Rejoint un groupe multicast IPv6 (IPV6_ADD_MEMBERSHIP, struct ipv6_mreq).
leave_multicast_v4
Quitte un groupe multicast IPv4 (IP_DROP_MEMBERSHIP, struct ip_mreq).
leave_multicast_v6
Quitte un groupe multicast IPv6 (IPV6_DROP_MEMBERSHIP, struct ipv6_mreq).
listen
Met un socket en mode écoute.
receive_timeout
Lit le délai de réception (SO_RCVTIMEO). None = aucun délai armé.
recv
Reçoit des données d’un socket connecté.
recvmsg
Reçoit un message avec données de contrôle (ancillaires).
send
Envoie des données sur un socket connecté.
send_timeout
Lit le délai d’envoi (SO_SNDTIMEO). None = aucun délai armé.
sendmsg
Envoie un message avec données de contrôle (ancillaires).
set_ip_ttl
Définit le TTL IP (IP_TTL).
set_ipv6_v6only
Restreint les sockets IPv6 aux connexions IPv6-only (IPV6_V6ONLY).
set_receive_timeout
Définit le délai de réception (SO_RCVTIMEO). None désarme le délai.
set_send_timeout
Définit le délai d’envoi (SO_SNDTIMEO). None désarme le délai.
set_so_bindtodevice
Lie le socket à une interface réseau (SO_BINDTODEVICE).
set_so_keepalive
Définit l’option SO_KEEPALIVE.
set_so_linger
Définit l’option SO_LINGER.
set_so_rcvbuf
Définit la taille du buffer de réception.
set_so_reuseaddr
Définit l’option SO_REUSEADDR.
set_so_reuseport
Définit l’option SO_REUSEPORT.
set_so_sndbuf
Définit la taille du buffer d’envoi.
set_socket_option_int
Définit une option socket à valeur entière (setsockopt avec optlen == 4). Exposition publique de [setsockopt_i32] pour la face libc : level/optname sont les entiers bruts fournis par le C (validés par le kernel).
set_tcp_keepcnt
Définit le nombre max de keepalives sans réponse (TCP_KEEPCNT).
set_tcp_keepidle
Définit le délai TCP_KEEPIDLE (secondes d’inactivité avant premier keepalive).
set_tcp_keepintvl
Définit le délai TCP_KEEPINTVL (secondes entre deux keepalives).
set_tcp_nodelay
Définit l’option TCP_NODELAY.
shutdown
Ferme partiellement ou totalement un socket connecté.
socket
Crée un socket.
socket_addr_from_bytes
Décode un sockaddr kernel brut (octets + socklen_t) en [SocketAddr] typé. Exposition publique de [raw_to_socket_addr] pour la face libc : bytes est le buffer présenté par le C, length la longueur associée. Rend None si la famille est inconnue ou la longueur insuffisante — aucune présomption sur les octets (Principe 3), aucun unsafe.
socket_addr_to_bytes
Encode un [SocketAddr] typé en sockaddr kernel brut dans out, rendant la longueur effective (socklen_t) écrite, ou None si out est trop court. Exposition publique de [socket_addr_to_raw] pour la face libc sans fuiter le type de stockage interne (copie bornée dans le buffer de l’appelant).
socketpair
Crée une paire de sockets connectés.