La diferencia entre sendmsg y sendto
Descripción de la función send/sendto/sendmsg llamada por el sistema Linux
Descripción de la función:
Enviar un mensaje. enviar solo se puede utilizar en sockets basados en conexión. La única diferencia entre enviar y escribir es la presencia de un indicador; cuando el indicador es 0, enviar equivale a escribir.
Sendto y sendmsg se pueden utilizar con sockets basados y sin conexión. A menos que el socket esté configurado en modo sin bloqueo, la llamada se bloqueará hasta que se hayan enviado los datos.
Espero que te ayude