I'm writing a C client-server application.

The two sides exchange char buffer in order to communicate. 

What is the proper size for these buffers?  

Does exist a limit of bytes readable (or writable) by a `read()` (or a `write()`) on a stream-oriented socket?