NetworkStreamを使ってobjectを流す方法が上手くいかなくて困っています。
以下のようなコードを書いているのですが、
Deserialize部分でStreamにデータが流れていないとのエラーが出ます。

[送信側]

Hage hage = new Hage();

BinaryFormatter bf = new BinaryFormatter();
NetworkStream ns = tcpClient.GetStream();

bf.Serialize(ns, hage);


[受信側]


Hage hage = new Hage();

BinaryFormatter bf = new BinaryFormatter();
NetworkStream ns = tcpClient.GetStream();

hage = (Hage)bf.Deserialize(ns);



この記述じゃStreamに流れないのでしょうか。
ご助言願いたいです。