title: Performance impact of using write() instead of send() when writing to a socket
body: <p>I am working on writing a network application in C++ on the Linux platform using the typical sockets API, and I am looking at 2 alternative ways of writing a byte array to a TCP stream: either by calling write(), or by calling send().  I know that, since this is Linux, the socket handle is simply a file descriptor, and therefore it is valid to perform read() and write() calls on the socket, however the sockets API also provides the send() and recv() functions to perform the same tasks.</p>
  
  <p>I am therefore wondering if there is any particular reason to choose one class of functions over the other - are the send/recv functions optimized for network writing/reading, do they perform better, etc?  Or is it really arbitrary which functions I use?  Do read() and write() behave properly in all cases?</p>
  
  <p>Thanks for any insights!</p>