おっと
送信側と同じ区切りで2回の recv: [ABC] [abcd]
が抜けてたな

・先頭記号 - 終端記号 で区切る
・(固定長の)ヘッダに後続のデータサイズをおいて、受信データサイズで区切る
・情報やりとり毎にセッションを張りなおす:
 送信側 送ってcloseする
 受信側は recv 0 を受け取ったところがデータ終端