zoukankan      html  css  js  c++  java
  • TCP通信过程中时时监测连接是否已断开

    贴出主要代码:


      private void ReceiveData(object cUserData)
      {
       User cUser=(User ) cUserData;
                //连接断开标志
       bool closed=false;
       byte[] flagbyte=new byte [1];
       while (!closed )
       {
        try
        {
                        //检测是否有课接收的数据
         if(cUser.client.Available>0)
         {
          byte[] bytes=new byte [cUser.client.Available ];
          cUser.netStream.Read (bytes,0,bytes.Length );
         }
                        //监测连接是否存在
         if(cUser.client.Client.Poll (0,SelectMode.SelectRead))
          closed=int.Equals(cUser.client.Client.Receive (flagbyte,SocketFlags.Peek),0);       
        }
        catch { 
         closed =true;
         System.Diagnostics.Debug.WriteLine ("断开连接!");
         cUser.Close ();
        }     
        Thread.Sleep (1);
       }
      }

           
            public class User
            {
                public string cName { get; set; }
                public TcpClient client { get; set; }
                public NetworkStream netStream { get; set; }
                public User(TcpClient _client)
                {
                    this.client = _client;
                    this.netStream = client.GetStream();
                }
                public void Close()
                {
                    netStream.Close();
                    client.Client.Close();
                    client.Close();
                }
            }

  • 相关阅读:
    Style file: generic.xaml
    OpenCV源码分析:RGB到其他色彩空间的转换
    3D《四大名捕 大结局》
    Halcon 10.0:Hobject图像转CBitmap
    Halcon 映射校正例程注释(MapImage)
    信息论-基础知识
    注释:这50个词,在这10月30号之前完成
    谱聚类(Spectral Clustering, SC)
    K-means聚类算法
    利用Adapter对象将数据填充到DataTable(或DataSet)的例子
  • 原文地址:https://www.cnblogs.com/teyond/p/2491213.html
Copyright © 2011-2022 走看看