教えてください。
VC++ WinSock でサーバプログラムをしているのですが、複数クライアントからのデータ受信で難航しております。

仮に、サーバAがポート3000で待ちうけ状態の時、クライアントB及びCと接続、B、Cから同時にデータが送信された時、Aのrecvプロセスでデータがごちゃごちゃになります。
クライアントに対してのrecvはそれぞれスレッドで処理をしてるのですが、Bの受信イベントでCのデータも受信されてしまいます。

同一ポートでもacceptしたそれぞれのソケットで送受信できないのでしょうか?
考え方自体間違っていますか?
お願いいたします。