Milianto
2017-10-17 09:02
采纳率: 22.2%
浏览 1.4k
已采纳

为什么NetworkStream 读数据的时候程序自动停止,也捕捉不到异常?

    我用串口调试助手开的一个服务端。连接之后,串口调试助手不发送数据,让客户端直接读数据。但是这里程序捕捉不到异常,也没有输出读到的字节数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();
                    }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • devmiao 2017-10-17 17:20
    已采纳
    点赞 打赏 评论
  • Milianto 2017-10-18 00:25

    楼上的链接好像并没有解决这个问题。昨天问题解决了是因为C#的tcpClient里面有一个receiveTimeOut属性,如果没有设置值,client请求读数据没有数据就会
    一直等待服务端发来数据。如果设置了receiveTimeout属性,就可以捕捉到异常啦。

    点赞 打赏 评论

相关推荐 更多相似问题