我用串口调试助手开的一个服务端。连接之后,串口调试助手不发送数据,让客户端直接读数据。但是这里程序捕捉不到异常,也没有输出读到的字节数0.msdn里面是说如果没有可读数据,返回值是0,但是这个跑起来。。得不到i值也没有异常。
static void Main(string[] args)
{
TcpClient client = new TcpClient("127.0.0.1",5000);
NetworkStream ns = client.GetStream();
byte[] buffer = new byte[1000];
try
{
int i = ns.Read(buffer,0, buffer.Length)
Console.WriteLine(i );
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.Read();
}
楼上的链接好像并没有解决这个问题。昨天问题解决了是因为C#的tcpClient里面有一个receiveTimeOut属性,如果没有设置值,client请求读数据没有数据就会
一直等待服务端发来数据。如果设置了receiveTimeout属性,就可以捕捉到异常啦。