c#退出NetworkStream.read()

时间:2016-08-18 04:27:38

标签: c# sockets networking tcp stream

我创建了一个TCP侦听器来从端口接收数据。我创建了一个NetworkStream来读取即将到来的数据。

NetworkStream stream = new NetworkStream(TCPSocket);
Byte[] bytes = new Byte[128];
int i;
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
{
     string msg = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
     Console.WriteLine("received: {0}", msg);
}

我想要做的是,如果10分钟内没有数据,我想关闭流。我怎样才能做到这一点?我曾尝试使用timer来创建一个线程,以便在一段时间之后调用stream.close(),但在接收任何数据之前没有任何工作。提前谢谢!

1 个答案:

答案 0 :(得分:2)

尝试使用:

stream.ReadTimeOut = 600000; 

以毫秒为单位。