- descriptor de socket: El descriptor del socket en el que enviar o recibir datos.
- búfer: Un puntero al búfer de memoria que contiene los datos que se enviarán o se utiliza para almacenar los datos recibidos.
- longitud: La longitud de los datos que se enviarán o recibirán.
- banderas: Un conjunto de indicadores que se pueden utilizar para modificar el comportamiento de la llamada.
La llamada `send()` transmite datos desde el buffer del programa al buffer del par a través del socket.
La llamada `recv()` recibe datos del búfer del par al búfer del programa a través del socket.
Las siguientes banderas se pueden utilizar con `send()`:
- MSG_CONFIRM :Hace que los datos se envíen a través de la red inmediatamente.
- MSG_DONTROUTE: Evita que los datos se enruten a través de la puerta de enlace predeterminada. Esta función puede resultar útil para enviar datos a un host específico.
- MSG_EOR: Indica que el mensaje es el final de un registro.
- MSG_MORE :Indica que se están enviando más datos.
- MSG_NOSIGNAL :Evita la generación de una señal SIGPIPE al enviar datos a un socket cerrado.
- MSG_OOB :envía los datos fuera de banda. Esta función puede resultar útil para enviar datos urgentes.
Los siguientes indicadores se pueden utilizar con `recv()`:
- MSG_WAITALL: Hace que la llamada se bloquee hasta que se haya recibido toda la longitud de datos.
-MSG_PEEK: Permite que la aplicación eche un vistazo a los datos sin eliminarlos del búfer.
- MSG_OOB :Recibe los datos fuera de banda.
Las llamadas `send()` y `recv()` se pueden utilizar para enviar y recibir datos de cualquier tipo. Sin embargo, normalmente se utilizan para enviar y recibir datos de caracteres.