I'm not even sure where to start. I would like to create something like the ADO DataReader but that works in a TCP Client/Server scenario.

Basically, in the TCP Client, I want to be able to call a certain command in the TCP Server which will return a DataReader like object, which I can then iterate through such as:

while dr.Read

from the client. In each loop, I would parse out the various fields as in a normal DataReader.

The reason I want to do this is to gain the inherent efficiency of the DataReader object since it doesn't first load ALL of the data. To my understanding, the typical TCP Client/Server setup using streams, would first load all of the data on the server, then transport ALL of that data to the client for processing. I want to avoid that, and just stream the data as the client requests through the Read() command which means the connection will remain open to the server while the Read() command is being issued by the client, or until explicitly closed by the client.

Hopefully this makes sense and someone can point me in the right direction. Thanks!