Example #1
0
 private void btnClose_Click(object sender, EventArgs e)
 {
     ConnectNum = false;
     AsyncSocketUserToken[] userTokenArray = null;
     AsyncSocketSvr.AsyncSocketUserTokenList.CopyList(ref userTokenArray);
     for (int i = 0; i < userTokenArray.Length; i++)
     {
         try
         {
             lock (userTokenArray[i])
             {
                 AsyncSocketSvr.CloseClientSocket(userTokenArray[i]);
             }
         }
         catch (Exception E)
         {
             MessageBox.Show(E.ToString());
         }
     }
     AsyncSocketSvr.CloseAllClient();
     txtLink.AppendText(DateTime.Now.ToString() + " :停止监听" + "\r\n");
     btnStart.BackColor = Color.FromArgb(255, 255, 255);
     maxConnect.Enabled = true;
     btnStart.Enabled   = true;
 }
Example #2
0
        public void DaemonThreadStart()
        {
            while (m_thread.IsAlive)
            {
                AsyncSocketUserToken[] userTokenArray = null;
                m_asyncSocketServer.AsyncSocketUserTokenList.CopyList(ref userTokenArray);
                for (int i = 0; i < userTokenArray.Length; i++)
                {
                    if (!m_thread.IsAlive)
                    {
                        break;
                    }
                    try
                    {
                        if ((DateTime.Now - userTokenArray[i].ActiveDateTime).TotalMilliseconds > m_asyncSocketServer.SocketTimeOutMS) //超时Socket断开
                        {
                            lock (userTokenArray[i])
                            {
                                m_asyncSocketServer.CloseClientSocket(userTokenArray[i]);
                            }
                        }
                    }
                    catch
                    {
                    }
                }

                for (int i = 0; i < 60; i++)  //每分钟检测一次
                {
                    if (!m_thread.IsAlive)
                    {
                        break;
                    }
                    Thread.Sleep(1000);
                }
            }
        }