#include <sys/socket.h>

sys/socket.h

198 macros · 22 functions · 10 structs · 3 typedefs

macroSOCK_STREAM

Types
#define SOCK_STREAM 1
stream socket

macroSOCK_DGRAM

#define SOCK_DGRAM 2
datagram socket

macroSOCK_RAW

#define SOCK_RAW 3
raw-protocol interface

macroSOCK_RDM

#define SOCK_RDM 4
reliably-delivered message

macroSOCK_SEQPACKET

#define SOCK_SEQPACKET 5
sequenced packet stream

macroSO_DEBUG

Option flags per-socket.
#define SO_DEBUG 0x0001
turn on debugging info recording

macroSO_ACCEPTCONN

#define SO_ACCEPTCONN 0x0002
socket has had listen()

macroSO_REUSEADDR

#define SO_REUSEADDR 0x0004
allow local address reuse

macroSO_KEEPALIVE

#define SO_KEEPALIVE 0x0008
keep connections alive

macroSO_DONTROUTE

#define SO_DONTROUTE 0x0010
just use interface addresses

macroSO_BROADCAST

#define SO_BROADCAST 0x0020
permit sending of broadcast msgs

macroSO_USELOOPBACK

#define SO_USELOOPBACK 0x0040
bypass hardware when possible

macroSO_LINGER

#define SO_LINGER 0x0080
linger on close if data present (in ticks)

macroSO_LINGER_SEC

#define SO_LINGER_SEC 0x1080
linger on close if data present (in seconds)

macroSO_OOBINLINE

#define SO_OOBINLINE 0x0100
leave received OOB data in line

macroSO_REUSEPORT

#define SO_REUSEPORT 0x0200
allow local address & port reuse

macroSO_TIMESTAMP

#define SO_TIMESTAMP 0x0400
timestamp received dgram traffic

macroSO_TIMESTAMP_MONOTONIC

#define SO_TIMESTAMP_MONOTONIC 0x0800
Monotonically increasing timestamp on rcvd dgram

macroSO_DONTTRUNC

#define SO_DONTTRUNC 0x2000
APPLE: Retain unread data

macroSO_WANTMORE

(ATOMIC proto)
#define SO_WANTMORE 0x4000
APPLE: Give hint when more data ready

macroSO_WANTOOBFLAG

#define SO_WANTOOBFLAG 0x8000
APPLE: Want OOB in MSG_FLAG on receive

macroSO_SNDBUF

Additional options, not kept in so_options.
#define SO_SNDBUF 0x1001
send buffer size

macroSO_RCVBUF

#define SO_RCVBUF 0x1002
receive buffer size

macroSO_SNDLOWAT

#define SO_SNDLOWAT 0x1003
send low-water mark

macroSO_RCVLOWAT

#define SO_RCVLOWAT 0x1004
receive low-water mark

macroSO_SNDTIMEO

#define SO_SNDTIMEO 0x1005
send timeout

macroSO_RCVTIMEO

#define SO_RCVTIMEO 0x1006
receive timeout

macroSO_ERROR

#define SO_ERROR 0x1007
get error status and clear

macroSO_TYPE

#define SO_TYPE 0x1008
get socket type

macroSO_LABEL

#define SO_LABEL 0x1010
deprecated

macroSO_PEERLABEL

#define SO_PEERLABEL 0x1011
deprecated

macroSO_NREAD

#define SO_NREAD 0x1020
APPLE: get 1st-packet byte count

macroSO_NKE

#define SO_NKE 0x1021
APPLE: Install socket-level NKE

macroSO_NOSIGPIPE

#define SO_NOSIGPIPE 0x1022
APPLE: No SIGPIPE on EPIPE

macroSO_NOADDRERR

#define SO_NOADDRERR 0x1023
APPLE: Returns EADDRNOTAVAIL when src is not available anymore

macroSO_NWRITE

#define SO_NWRITE 0x1024
APPLE: Get number of bytes currently in send socket buffer

macroSO_REUSESHAREUID

#define SO_REUSESHAREUID 0x1025
APPLE: Allow reuse of port/socket by different userids

macroSO_NOTIFYCONFLICT

#define SO_NOTIFYCONFLICT 0x1026
APPLE: send notification if there is a bind on a port which is already in use

macroSO_UPCALLCLOSEWAIT

#define SO_UPCALLCLOSEWAIT 0x1027
APPLE: block on close until an upcall returns

macroSO_RANDOMPORT

#define SO_RANDOMPORT 0x1082
APPLE: request local port randomization

macroSO_NP_EXTENSIONS

#define SO_NP_EXTENSIONS 0x1083
To turn off some POSIX behavior

macroSO_NUMRCVPKT

#define SO_NUMRCVPKT 0x1112
number of datagrams in receive socket buffer

macroSO_NET_SERVICE_TYPE

#define SO_NET_SERVICE_TYPE 0x1116
Network service type

macroSO_NETSVC_MARKING_LEVEL

#define SO_NETSVC_MARKING_LEVEL 0x1119
Get QoS marking in effect for socket

macroSO_RESOLVER_SIGNATURE

#define SO_RESOLVER_SIGNATURE 0x1131
A signed data blob from the system resolver

macroSO_BINDTODEVICE

#define SO_BINDTODEVICE 0x1134
bind socket to a network device (max valid option length IFNAMSIZ)

macroNET_SERVICE_TYPE_BE

#define NET_SERVICE_TYPE_BE 0
Best effort

macroNET_SERVICE_TYPE_BK

#define NET_SERVICE_TYPE_BK 1
Background system initiated

macroNET_SERVICE_TYPE_SIG

#define NET_SERVICE_TYPE_SIG 2
Signaling

macroNET_SERVICE_TYPE_VI

#define NET_SERVICE_TYPE_VI 3
Interactive Video

macroNET_SERVICE_TYPE_VO

#define NET_SERVICE_TYPE_VO 4
Interactive Voice

macroNET_SERVICE_TYPE_RV

#define NET_SERVICE_TYPE_RV 5
Responsive Multimedia Audio/Video

macroNET_SERVICE_TYPE_AV

#define NET_SERVICE_TYPE_AV 6
Multimedia Audio/Video Streaming

macroNET_SERVICE_TYPE_OAM

#define NET_SERVICE_TYPE_OAM 7
Operations, Administration, and Management

macroNET_SERVICE_TYPE_RD

#define NET_SERVICE_TYPE_RD 8
Responsive Data

macroNETSVC_MRKNG_UNKNOWN

These are supported values for SO_NETSVC_MARKING_LEVEL
#define NETSVC_MRKNG_UNKNOWN 0
The outgoing network interface is not known

macroNETSVC_MRKNG_LVL_L2

#define NETSVC_MRKNG_LVL_L2 1
Default marking at layer 2 (for example Wi-Fi WMM)

macroNETSVC_MRKNG_LVL_L3L2_ALL

#define NETSVC_MRKNG_LVL_L3L2_ALL 2
Layer 3 DSCP marking and layer 2 marking for all Network Service Types

macroNETSVC_MRKNG_LVL_L3L2_BK

#define NETSVC_MRKNG_LVL_L3L2_BK 3
The system policy limits layer 3 DSCP marking and layer 2 marking to background Network Service Types

typedefsae_associd_t

typedef __uint32_t sae_associd_t

macroSAE_ASSOCID_ANY

#define SAE_ASSOCID_ANY 0

macroSAE_ASSOCID_ALL

#define SAE_ASSOCID_ALL ((sae_associd_t)(-1ULL))

typedefsae_connid_t

typedef __uint32_t sae_connid_t

macroSAE_CONNID_ANY

#define SAE_CONNID_ANY 0

macroSAE_CONNID_ALL

#define SAE_CONNID_ALL ((sae_connid_t)(-1ULL))

macroCONNECT_RESUME_ON_READ_WRITE

connectx() flag parameters
#define CONNECT_RESUME_ON_READ_WRITE 0x1
resume connect() on read/write

macroCONNECT_DATA_IDEMPOTENT

#define CONNECT_DATA_IDEMPOTENT 0x2
data is idempotent

macroCONNECT_DATA_AUTHENTICATED

#define CONNECT_DATA_AUTHENTICATED 0x4
data includes security that replaces the TFO-cookie

structsa_endpoints

sockaddr endpoints
size 40, align 8
unsigned intsae_srcifoptional source interface
const struct sockaddr *sae_srcaddroptional source address
socklen_tsae_srcaddrlensize of source address
const struct sockaddr *sae_dstaddrdestination address
socklen_tsae_dstaddrlensize of destination address

typedefsa_endpoints_t

typedef struct sa_endpoints sa_endpoints_t;

structlinger

Structure used for manipulating linger option.
size 8, align 4
intl_onoffoption on/off
intl_lingerlinger time

structso_np_extensions

Structure to control non-portable Sockets extension to POSIX
size 8, align 4
u_int32_tnpx_flags
u_int32_tnpx_mask

macroSONPX_SETOPTSHUT

#define SONPX_SETOPTSHUT 0x000000001
flag for allowing setsockopt after shutdown

macroSOL_SOCKET

Level number for (get/set)sockopt() to apply to socket itself.
#define SOL_SOCKET 0xffff
options for socket level

macroAF_UNSPEC

Address families.
#define AF_UNSPEC 0
unspecified

macroAF_UNIX

#define AF_UNIX 1
local to host (pipes)

macroAF_LOCAL

#define AF_LOCAL AF_UNIX
backward compatibility

macroAF_INET

#define AF_INET 2
internetwork: UDP, TCP, etc.

macroAF_PUP

#define AF_PUP 4
pup protocols: e.g. BSP

macroAF_CHAOS

#define AF_CHAOS 5
mit CHAOS protocols

macroAF_NS

#define AF_NS 6
XEROX NS protocols

macroAF_ISO

#define AF_ISO 7
ISO protocols

macroAF_OSI

#define AF_OSI AF_ISO

macroAF_ECMA

#define AF_ECMA 8
European computer manufacturers

macroAF_DATAKIT

#define AF_DATAKIT 9
datakit protocols

macroAF_CCITT

#define AF_CCITT 10
CCITT protocols, X.25 etc

macroAF_SNA

#define AF_SNA 11
IBM SNA

macroAF_DECnet

#define AF_DECnet 12
DECnet

macroAF_DLI

#define AF_DLI 13
DEC Direct data link interface

macroAF_LAT

#define AF_LAT 14
LAT

macroAF_APPLETALK

#define AF_APPLETALK 16
Apple Talk

macroAF_ROUTE

#define AF_ROUTE 17
Internal Routing Protocol

macropseudo_AF_XTP

#define pseudo_AF_XTP 19
eXpress Transfer Protocol (no AF)

macroAF_COIP

#define AF_COIP 20
connection-oriented IP, aka ST II

macroAF_CNT

#define AF_CNT 21
Computer Network Technology

macropseudo_AF_RTIP

#define pseudo_AF_RTIP 22
Help Identify RTIP packets

macroAF_IPX

#define AF_IPX 23
Novell Internet Protocol

macroAF_SIP

#define AF_SIP 24
Simple Internet Protocol

macropseudo_AF_PIP

#define pseudo_AF_PIP 25
Help Identify PIP packets

macroAF_NDRV

#define AF_NDRV 27
Network Driver 'raw' access

macroAF_ISDN

#define AF_ISDN 28
Integrated Services Digital Network

macroAF_E164

#define AF_E164 AF_ISDN
CCITT E.164 recommendation

macropseudo_AF_KEY

#define pseudo_AF_KEY 29
Internal key-management function

macroAF_INET6

#define AF_INET6 30
IPv6

macroAF_NATM

#define AF_NATM 31
native ATM access

macroAF_SYSTEM

#define AF_SYSTEM 32
Kernel event messages

macroAF_NETBIOS

#define AF_NETBIOS 33
NetBIOS

macroAF_PPP

#define AF_PPP 34
PPP communication protocol

macropseudo_AF_HDRCMPLT

#define pseudo_AF_HDRCMPLT 35
Used by BPF to not rewrite headers in interface output routine

macroAF_RESERVED_36

#define AF_RESERVED_36 36
Reserved for internal usage

macroAF_IEEE80211

#define AF_IEEE80211 37
IEEE 802.11 protocol

macroAF_UTUN

#define AF_UTUN 38

macroAF_VSOCK

#define AF_VSOCK 40
VM Sockets

macroAF_MAX

#define AF_MAX 41

structsockaddr

[XSI] Structure used by kernel to store most addresses.
size 16, align 1
__uint8_tsa_lentotal length
sa_family_tsa_family[XSI] address family
char[14]sa_data[XSI] addr value

struct__sockaddr_header

Least amount of information that a sockaddr requires. Sockaddr_header is a compatible prefix structure of all sockaddr objects.
size 2, align 1
__uint8_tsa_len
sa_family_tsa_family

macroSOCK_MAXADDRLEN

#define SOCK_MAXADDRLEN 255
longest possible addresses

structsockproto

Structure used by kernel to pass protocol information in raw sockets.
size 4, align 2
__uint16_tsp_familyaddress family
__uint16_tsp_protocolprotocol

macro_SS_MAXSIZE

RFC 2553: protocol-independent placeholder for socket addresses
#define _SS_MAXSIZE 128

macro_SS_ALIGNSIZE

#define _SS_ALIGNSIZE (sizeof(__int64_t))

macro_SS_PAD1SIZE

#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(__uint8_t) - sizeof(sa_family_t))

macro_SS_PAD2SIZE

#define _SS_PAD2SIZE (_SS_MAXSIZE - sizeof(__uint8_t) - sizeof(sa_family_t) -
	                        _SS_PAD1SIZE - _SS_ALIGNSIZE)

structsockaddr_storage

[XSI] sockaddr_storage
size 128, align 8
__uint8_tss_lenaddress length
sa_family_tss_family[XSI] address family
char[6]__ss_pad1
__int64_t__ss_alignforce structure storage alignment
char[112]__ss_pad2

macroPF_UNSPEC

Protocol families, same as address families for now.
#define PF_UNSPEC AF_UNSPEC

macroPF_LOCAL

#define PF_LOCAL AF_LOCAL

macroPF_UNIX

#define PF_UNIX PF_LOCAL
backward compatibility

macroPF_INET

#define PF_INET AF_INET

macroPF_PUP

#define PF_PUP AF_PUP

macroPF_CHAOS

#define PF_CHAOS AF_CHAOS

macroPF_NS

#define PF_NS AF_NS

macroPF_ISO

#define PF_ISO AF_ISO

macroPF_OSI

#define PF_OSI AF_ISO

macroPF_ECMA

#define PF_ECMA AF_ECMA

macroPF_DATAKIT

#define PF_DATAKIT AF_DATAKIT

macroPF_CCITT

#define PF_CCITT AF_CCITT

macroPF_SNA

#define PF_SNA AF_SNA

macroPF_DECnet

#define PF_DECnet AF_DECnet

macroPF_DLI

#define PF_DLI AF_DLI

macroPF_LAT

#define PF_LAT AF_LAT

macroPF_APPLETALK

#define PF_APPLETALK AF_APPLETALK

macroPF_ROUTE

#define PF_ROUTE AF_ROUTE

macroPF_XTP

#define PF_XTP pseudo_AF_XTP
really just proto family, no AF

macroPF_COIP

#define PF_COIP AF_COIP

macroPF_CNT

#define PF_CNT AF_CNT

macroPF_SIP

#define PF_SIP AF_SIP

macroPF_IPX

#define PF_IPX AF_IPX
same format as AF_NS

macroPF_RTIP

#define PF_RTIP pseudo_AF_RTIP
same format as AF_INET

macroPF_PIP

#define PF_PIP pseudo_AF_PIP

macroPF_NDRV

#define PF_NDRV AF_NDRV

macroPF_ISDN

#define PF_ISDN AF_ISDN

macroPF_KEY

#define PF_KEY pseudo_AF_KEY

macroPF_INET6

#define PF_INET6 AF_INET6

macroPF_NATM

#define PF_NATM AF_NATM

macroPF_SYSTEM

#define PF_SYSTEM AF_SYSTEM

macroPF_NETBIOS

#define PF_NETBIOS AF_NETBIOS

macroPF_PPP

#define PF_PPP AF_PPP

macroPF_RESERVED_36

#define PF_RESERVED_36 AF_RESERVED_36

macroPF_UTUN

#define PF_UTUN AF_UTUN

macroPF_VSOCK

#define PF_VSOCK AF_VSOCK

macroPF_MAX

#define PF_MAX AF_MAX

macroPF_VLAN

These do not have socket-layer support:
#define PF_VLAN ((uint32_t)0x766c616e)
'vlan'

macroPF_BOND

#define PF_BOND ((uint32_t)0x626f6e64)
'bond'

macroNET_MAXID

Definitions for network related sysctl, CTL_NET. Second level is protocol family. Third level is protocol number. Further levels are defined by the individual families below.
#define NET_MAXID AF_MAX

macroNET_RT_DUMP

PF_ROUTE - Routing table Three additional levels are defined: Fourth: address family, 0 is wildcard Fifth: type of info, defined below Sixth: flag(s) to mask with for NET_RT_FLAGS
#define NET_RT_DUMP 1
dump; may limit to a.f.

macroNET_RT_FLAGS

#define NET_RT_FLAGS 2
by flags, e.g. RESOLVING

macroNET_RT_IFLIST

#define NET_RT_IFLIST 3
survey interface list

macroNET_RT_STAT

#define NET_RT_STAT 4
routing statistics

macroNET_RT_TRASH

#define NET_RT_TRASH 5
routes not in table but not freed

macroNET_RT_IFLIST2

#define NET_RT_IFLIST2 6
interface list with addresses

macroNET_RT_DUMP2

#define NET_RT_DUMP2 7
dump; may limit to a.f.

macroNET_RT_FLAGS_PRIV

Allows read access non-local host's MAC address if the process has neighbor cache entitlement.
#define NET_RT_FLAGS_PRIV 10

macroNET_RT_MAXID

#define NET_RT_MAXID 11

macroSOMAXCONN

Maximum queue length specifiable by listen.
#define SOMAXCONN 128

structmsghdr

[XSI] Message header for recvmsg and sendmsg calls. Used value-result for recvmsg, value only for sendmsg.
size 48, align 8
void *msg_name[XSI] optional address
socklen_tmsg_namelen[XSI] size of address
struct iovec *msg_iov[XSI] scatter/gather array
intmsg_iovlen[XSI] # elements in msg_iov
void *msg_control[XSI] ancillary data, see below
socklen_tmsg_controllen[XSI] ancillary data buffer len
intmsg_flags[XSI] flags on received message

macroMSG_OOB

#define MSG_OOB 0x1
process out-of-band data

macroMSG_PEEK

#define MSG_PEEK 0x2
peek at incoming message

macroMSG_DONTROUTE

#define MSG_DONTROUTE 0x4
send without using routing tables

macroMSG_EOR

#define MSG_EOR 0x8
data completes record

macroMSG_TRUNC

#define MSG_TRUNC 0x10
data discarded before delivery

macroMSG_CTRUNC

#define MSG_CTRUNC 0x20
control data lost before delivery

macroMSG_WAITALL

#define MSG_WAITALL 0x40
wait for full request or error

macroMSG_DONTWAIT

#define MSG_DONTWAIT 0x80
this message should be nonblocking

macroMSG_EOF

#define MSG_EOF 0x100
data completes connection

macroMSG_WAITSTREAM

#define MSG_WAITSTREAM 0x200
wait up to full request.. may return partial

macroMSG_FLUSH

#define MSG_FLUSH 0x400
Start of 'hold' seq; dump so_temp, deprecated

macroMSG_HOLD

#define MSG_HOLD 0x800
Hold frag in so_temp, deprecated

macroMSG_SEND

#define MSG_SEND 0x1000
Send the packet in so_temp, deprecated

macroMSG_HAVEMORE

#define MSG_HAVEMORE 0x2000
Data ready to be read

macroMSG_RCVMORE

#define MSG_RCVMORE 0x4000
Data remains in current pkt

macroMSG_NEEDSA

#define MSG_NEEDSA 0x10000
Fail receive if socket address cannot be allocated

macroMSG_NOSIGNAL

#define MSG_NOSIGNAL 0x80000
do not generate SIGPIPE on EOF

structcmsghdr

Header for ancillary data objects in msg_control buffer. Used for additional information with/about a datagram not expressible by flags. The format is a sequence of message elements headed by cmsghdr structures.
size 12, align 4
socklen_tcmsg_len[XSI] data byte count, including hdr
intcmsg_level[XSI] originating protocol
intcmsg_type[XSI] protocol-specific type

macroCMSG_DATA

given pointer to struct cmsghdr, return pointer to data
#define CMSG_DATA(cmsg) ((unsigned char *)(cmsg) +
	__DARWIN_ALIGN32(sizeof(struct cmsghdr)))

macroCMSG_FIRSTHDR

RFC 2292 requires to check msg_controllen, in case that the kernel returns an empty list for some reasons.
#define CMSG_FIRSTHDR(mhdr) ((mhdr)->msg_controllen >= sizeof(struct cmsghdr) ?
	    (struct cmsghdr *)(mhdr)->msg_control :
	    (struct cmsghdr *)0L)

macroCMSG_NXTHDR

Given pointer to struct cmsghdr, return pointer to next cmsghdr RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
#define CMSG_NXTHDR(mhdr, cmsg) ((char *)(cmsg) == (char *)0L ? CMSG_FIRSTHDR(mhdr) :
	    ((((unsigned char *)(cmsg) +
	    __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len) +
	    __DARWIN_ALIGN32(sizeof(struct cmsghdr))) >
	    ((unsigned char *)(mhdr)->msg_control +
	    (mhdr)->msg_controllen)) ?
	        (struct cmsghdr *)0L /* NULL */ :
	        (struct cmsghdr *)(void *)((unsigned char *)(cmsg) +
	            __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len))))

macroCMSG_SPACE

RFC 2292 additions
#define CMSG_SPACE(l) (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + __DARWIN_ALIGN32(l))

macroCMSG_LEN

#define CMSG_LEN(l) (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + (l))

macroSCM_RIGHTS

"Socket"-level control message types:
#define SCM_RIGHTS 0x01
access rights (array of int)

macroSCM_TIMESTAMP

#define SCM_TIMESTAMP 0x02
timestamp (struct timeval)

macroSCM_CREDS

#define SCM_CREDS 0x03
process creds (struct cmsgcred)

macroSCM_TIMESTAMP_MONOTONIC

#define SCM_TIMESTAMP_MONOTONIC 0x04
timestamp (uint64_t)

macroSHUT_RD

howto arguments for shutdown(2), specified by Posix.1g.
#define SHUT_RD 0
shut down the reading side

macroSHUT_WR

#define SHUT_WR 1
shut down the writing side

macroSHUT_RDWR

#define SHUT_RDWR 2
shut down both sides

structsf_hdtr

sendfile(2) header/trailer struct
size 32, align 8
struct iovec *headerspointer to an array of header struct iovec's
inthdr_cntnumber of header iovec's
struct iovec *trailerspointer to an array of trailer struct iovec's
inttrl_cntnumber of trailer iovec's

functionaccept

__DARWIN_ALIAS_C(accept)
int accept(int, struct sockaddr * __restrict, socklen_t * __restrict)
man page · March 18, 2015
accept(2) — accept a connection on a socket

functionbind

__DARWIN_ALIAS(bind)
int bind(int, const struct sockaddr *, socklen_t)
man page · March 18, 2015
bind(2) — bind a name to a socket

functionconnect

__DARWIN_ALIAS_C(connect)
int connect(int, const struct sockaddr *, socklen_t)
man page · March 18, 2015
connect(2) — initiate a connection on a socket

functiongetpeername

__DARWIN_ALIAS(getpeername)
int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict)
man page · June 4, 1993
getpeername(2) — get address of connected peer

functiongetsockname

__DARWIN_ALIAS(getsockname)
int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict)
man page · June 4, 1993
getsockname(2) — get socket name

functiongetsockopt

int getsockopt(int, int, int, void * __restrict, socklen_t * __restrict)
man page · April 19, 1994
getsockopt(2) — get and set options on sockets

functionlisten

__DARWIN_ALIAS(listen)
int listen(int, int)
man page · March 18, 2015
listen(2) — listen for connections on a socket

functionrecv

__DARWIN_ALIAS_C(recv)
ssize_t recv(int, void *, size_t, int)
man page · March 18, 2015
recv(2) — receive a message from a socket

functionrecvfrom

__DARWIN_ALIAS_C(recvfrom)
ssize_t recvfrom(
	int,
	void *,
	size_t,
	int,
	struct sockaddr * __restrict,
	socklen_t * __restrict
)
man page · March 18, 2015
recvfrom(2) — receive a message from a socket

functionrecvmsg

__DARWIN_ALIAS_C(recvmsg)
ssize_t recvmsg(int, struct msghdr *, int)
man page · March 18, 2015
recvmsg(2) — receive a message from a socket

functionsend

__DARWIN_ALIAS_C(send)
ssize_t send(int, const void *, size_t, int)
man page · February 21, 1994
send(2) — send a message from a socket

functionsendmsg

__DARWIN_ALIAS_C(sendmsg)
ssize_t sendmsg(int, const struct msghdr *, int)
man page · February 21, 1994
sendmsg(2) — send a message from a socket

functionsendto

__DARWIN_ALIAS_C(sendto)
ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t)
man page · February 21, 1994
sendto(2) — send a message from a socket

functionsetsockopt

int setsockopt(int, int, int, const void *, socklen_t)
man page · April 19, 1994
setsockopt(2) — get and set options on sockets

functionshutdown

int shutdown(int, int)
man page · March 18, 2015
shutdown(2) — shut down part of a full-duplex connection

functionsockatmark

__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
int sockatmark(int)
man page · October 13, 2002
sockatmark(3) — determine whether the read pointer is at the OOB mark

functionsocket

int socket(int, int, int)
man page · March 18, 2015
socket(2) — create an endpoint for communication

functionsocketpair

__DARWIN_ALIAS(socketpair)
int socketpair(int, int, int, int *)
man page · June 4, 1993
socketpair(2) — create a pair of connected sockets

functionsendfile

int sendfile(int, int, off_t, off_t *, struct sf_hdtr *, int)
man page · March 31, 2006
sendfile(2) — send a file to a socket

functionpfctlinput

void pfctlinput(int, struct sockaddr *)

functionconnectx

__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0))
int connectx(
	int,
	const sa_endpoints_t *,
	sae_associd_t,
	unsigned int,
	const struct iovec *,
	unsigned int,
	size_t *,
	sae_connid_t *
)
man page · March 26, 2015
connectx(2) — initiate a connection on a socket

functiondisconnectx

__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0))
int disconnectx(int, sae_associd_t, sae_connid_t)
man page · April 10, 2015
disconnectx(2) — disconnects a connection on a socket