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();
                }
            }

  • 相关阅读:
    在python3.x上安装suds 并访问webservice
    numpy nonzero与isnan
    彻底弄清python的切片
    pandas read_sql与read_sql_table、read_sql_query 的区别
    dataframe to sql
    同时替换掉多个字符串
    matplotlib中在for中画出多张图
    MySql 创建/删除数据库
    python3与anaconda2共存
    js调用打印机
  • 原文地址:https://www.cnblogs.com/teyond/p/2491213.html
Copyright © 2011-2022 走看看