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

  • 相关阅读:
    【原】list<T>排序
    [原]unity3d刀光剑影(二)
    [原]unity3D bug记录
    [原]重要工具集
    [原]IOS 后台发送邮件
    [转]IOS 崩溃日志大全(二)
    动态二维数组的建立
    struts 学习
    sizeof()与strlen()的区别
    struts配置。泪奔...
  • 原文地址:https://www.cnblogs.com/teyond/p/2491213.html
Copyright © 2011-2022 走看看