Error when trying to use StreamReader to read from a NetworkStream

A

Al Wilkerson

Hey,

Has anyone ever got a "Unable to read data from transport connected" message
after reading data from a streamreader composed of a networkstream.

For example:

Server

TcpListener tcpServer = new TcpListener(localAddr,port);

TcpClient tcpClient = new TcpClient()
tcpClient = tcpServer.AcceptTcpClient();

NetworkStream networkStream = tcpClient.GetStream();

StreamWriter stringWriter = new StringWriter(networStream);

string lstrData = "An XML string"; // this is really a xml string
stringWriter.WriteLine(lstrData);
stringWriter.Flush();

-----------------------------


Client
--------

TcpClient tcpClient = new TcpClient("localhost",port);

NetworkStream networkStream = tcpClient.GetStream();

StreamReader streamReader = new StreamReader(networkStream);
string strData = streamReader.ReadLine();

-----------------------------------------------

When debugging networkStream is readable and has dada available, but
streamReader.ReadLine() returns the above error message: "Unable to read
data from transport connected".

BTW, the Server is sending the data fine, it's just the client that's not
reading fromt he stream.

Does anyone have any ideas of what I might be doing wrong here?

Much thanks in advance,
 
J

Jon Skeet [C# MVP]

Al Wilkerson said:
Has anyone ever got a "Unable to read data from transport connected" message
after reading data from a streamreader composed of a networkstream.

That sounds quite odd. Could you post a short but complete program
which demonstrates the problem?

See http://www.pobox.com/~skeet/csharp/complete.html for details of
what I mean by that.

(The code you provided wouldn't compile - StringWriter isn't a
StreamWriter, for starters.)
 
A

Al Wilkerson

Never mind I found out I had another StreamReader object hanging around. So
my problem is fixed.

Thanks,

Al
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top