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

  • 相关阅读:
    shell 逻辑操作符
    shell 整数
    shell 字符串
    常用文件测试操作符
    系统级脚本 rpcbind
    shell 特殊字符
    redhat7.5 升级OpenSSH_7.8p1
    kubernetes 项目
    salt 安装kubernetes集群3节点
    web应用
  • 原文地址:https://www.cnblogs.com/teyond/p/2491213.html
Copyright © 2020-2023  润新知