>>359
自分も素人なんですが書かせていただきます。
readallしたあと「>」や「<」 などでBufferを切り分けて、
そのメソッドの引数にすれば DataAvailableが複数回に渡って
呼び出されても問題ないと思います。
また、一気に処理しようとせず、MemoryBlockなども併用すれば
処理速度も格段に上がると思います。