Det elementære dataoverføringssocketsystemet krever sending og mottak av data over kontakten er send() og recv(). Hvert anrop tar fire parametere:
- socket descriptor: Sokkelbeskrivelsen for kontakten som skal sende eller motta data på.
- buffer: En peker til minnebufferen som inneholder dataene som skal sendes eller brukes til å lagre de mottatte dataene.
- lengde: Lengden på dataene som skal sendes eller mottas.
- flagg: Et sett med flagg som kan brukes til å endre oppførselen til samtalen.
`send()`-kallet overfører data fra bufferen til programmet til bufferen til peeren gjennom socket.
`recv()`-kallet mottar data fra bufferen til peeren til bufferen til programmet gjennom socket.
Følgende flagg kan brukes med `send()`:
- MSG_CONFIRM :Fører til at data sendes over nettverket umiddelbart.
- MSG_DONTROUTE: Hindrer at dataene blir rutet gjennom standard gateway. Denne funksjonen kan være nyttig for å sende data til en bestemt vert.
- MSG_EOR: Indikerer at meldingen er slutten på en post.
– MSG_MORE :Indikerer at mer data sendes.
- MSG_NOSIGNAL :Hindrer generering av et SIGPIPE-signal når data sendes til en lukket stikkontakt.
- MSG_OOB :Sender data utenfor båndet. Denne funksjonen kan være nyttig for å sende hastedata.
Følgende flagg kan brukes med `recv()`:
- MSG_WAITALL: Får anropet til å blokkere til hele datalengden er mottatt.
- MSG_PEEK: Lar appen se på dataene uten å fjerne dem fra bufferen.
- MSG_OOB :Mottar data utenfor båndet.
Anropene `send()` og `recv()` kan brukes til å sende og motta data av enhver type. Imidlertid brukes de vanligvis til å sende og motta tegndata.