Влияние на производительность при использовании write () вместо send () при записи в сокет

Я работаю над написанием сетевого приложения на C ++ на платформе Linux с использованием типичного API сокетов и ищу 2 альтернативных способа записи байтового массива в поток TCP: либо путем вызова write (), либо путем вызова send ( ). Я знаю, что, поскольку это Linux, дескриптор сокета - это просто дескриптор файла, и поэтому он допустим для выполнения вызовов read () и write () на сокете, однако API сокетов также предоставляет send () и recv ( ) функции для выполнения тех же задач.

Поэтому мне интересно, есть ли какая-то конкретная причина для выбора одного класса функций над другим - оптимизированы ли функции send / recv для сетевой записи / чтения, они работают лучше и т.д.? Или это действительно произвольно, какие функции я использую? Правильно ли ведут себя read () и write () во всех случаях?

Спасибо за любые идеи!

Ответы на вопрос(3)

Ваш ответ на вопрос