>>279
>多分1400バイトが安全圏かなぁ・・・。

>>278がレスしているように、TCPではメッセージ境界は保証されません。
いわゆるUNIXのパイプと同じ概念で、データの最小単位は1byteでしかないんです。
(だからTCPは「バイトストリーム指向」であると呼ばれることがあります。反意語は「レコード指向」)
言い換えると、理論的には最悪の場合1byte単位でソケットにデータが届くことがあり、
そのケースも想定して実装する必要があります。1400byteなんて安全圏はどこにも存在しません。

もし通信プロセスの実装が同期I/O方式であるなら、>>115の方法を使うのが最も楽です。
そうでないなら(非同期I/O方式であるなら)、推測されたように複雑なFIFO制御が求められます。

そんな設計が苦痛に感じられ、なおかつ(>>279が)アプリケーション層のプロトコル定義を
決定できる立場にあるのだとしたら、専用の通信ライブラリの利用を提案します。
(そのような通信ライブラリのことを「ミドルウェア」と呼ぶことがあります。)

(長いので続く)