No, this is not necessary. The only reason that BinaryReader/Writer implement IDisposable is because they assume ownership of the Stream that you pass to its constructor. Standard behavior for classes that handle streams in the .NET Framework.
But the Stream you pass is a NetworkStream that's owned by your TcpClient object. Which itself already implements IDisposable, it uses its Dispose method to dispose both the NetworkStream and the Socket.
So this is already taken care of, when you close the client then the stream is already disposed. No need to dispose it again through the reader and/or writer.