Det elementære dataoverførselssocket-system opfordrer til at sende og modtage data over soklen er send() og recv(). Hvert opkald tager fire parametre:
- socket descriptor: Socket-beskrivelsen for den socket, hvorpå der skal sendes eller modtages data.
- buffer: En pegepind til hukommelsesbufferen, der indeholder de data, der skal sendes, eller bruges til at gemme de modtagne data.
- længde: Længden af de data, der skal sendes eller modtages.
- flag: Et sæt flag, der kan bruges til at ændre opkaldets adfærd.
`send()`-kaldet transmitterer data fra bufferen i programmet til bufferen for peeren gennem soklen.
`recv()`-kaldet modtager data fra peerens buffer til programmets buffer gennem soklen.
Følgende flag kan bruges med `send()`:
- MSG_CONFIRM :Får dataene til at blive sendt over netværket med det samme.
- MSG_DONTROUTE: Forhindrer dataene i at blive dirigeret gennem standardgatewayen. Denne funktion kan være nyttig til at sende data til en bestemt vært.
- MSG_EOR: Indikerer, at meddelelsen er slutningen af en post.
- MSG_MORE :Indikerer, at der sendes flere data.
- MSG_NOSIGNAL :Forhindrer generering af et SIGPIPE-signal, når data sendes til et lukket stik.
- MSG_OOB :Sender data uden for båndet. Denne funktion kan være nyttig til at sende presserende data.
Følgende flag kan bruges med `recv()`:
- MSG_WAITALL: Får opkaldet til at blokere, indtil hele længden af data er modtaget.
- MSG_PEEK: Tillader applikationen at kigge på dataene uden at fjerne dem fra bufferen.
- MSG_OOB :Modtager out-of-band-data.
`send()` og `recv()`-kaldene kan bruges til at sende og modtage data af enhver type. De bruges dog typisk til at sende og modtage tegndata.