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
write v.s. send for a single byte, or a single array probably won't be much different - they will soon end up the same code path (ultimately they perform the same operation). The overhead in network transmission is highly unlikely to be at that level; it will the actual TCP connection and moving the bits over wires.
However, if you are intending to send large, multipart messages in a single go you should look at the sendmsg() syscall - this allows you to specify a list of non-contiguous arrays of data to send.
At the end of the day the normal guidelines apply - write the application first, then benchmark to see where your bottlenecks are.