You can get the NetworkStream from a TcpClient with client.GetStream() and pass it into a StreamReader/StreamWriter to gain access to their async read and write methods.
NetworkStream
TcpClient
client.GetStream()
StreamReader/StreamWriter