C# 中TCP连接通过数据接收来判断连接是否断开

来源:互联网 发布:剑三捏脸数据正太 编辑:程序博客网 时间:2024/06/03 21:46

C#中TCP连接对于数据的接收,无论是socket的Receive()方法或者是networkstream的read()方法对于数据的接收都是,有数据到来时就进行数据的接收,没有数据到来时就阻塞在那里等待数据的到来,而当连接断开时它们读取的数据都为0.所以可以通过判断读取数据的字节数来判断链路是否断开。

        void Recv()
        {
            while (flag)
            {
                byte[] buffer = new byte[1024];
                    if (Stream.CanRead)
                    {
                        int Count = Stream.Read(buffer, 0, buffer.Length);
                        Console.WriteLine(Count);
                        if (Count == 0)
                        {
                            Console.WriteLine("The Link is break....");
                            flag = false;
                        }       
                    }
                
                string msg = Encoding.ASCII.GetString(buffer);
                Showing(msg);
            }
        }

0 0