Example #1
0
        /// <summary>
        /// 移除用户
        /// </summary>
        /// <param name="user">指定要移除的用户</param>
        public void RemoveUser(User user)
        {
            if (yongHuTuiChuEvent != null)
                yongHuTuiChuEvent(user);
            userList.Remove(user.guid);
            user.Close();

            //AddItemToListBox(string.Format("当前连接用户数:{0}", userList.Count));
        }
Example #2
0
 /// <summary>
 /// 向客户端发送消息
 /// </summary>
 /// <param name="user"></param>
 /// <param name="obj"></param>
 public void SendObjToClient(User user, Object obj)
 {
     try
     {
         lock (this)
         {
             user.bw.Write(new XuLieHua().ToBytes(obj));
             user.bw.Flush();
         }
     }
     catch (Exception ex)
     {
         ImportDataLog.WriteLog("进入异常:" + ex.Message);
     }
 }
Example #3
0
        /// <summary>
        /// 接收客户端连接
        /// </summary>
        public void ListenClientConnect()
        {
            TcpClient newClient = null;
            while (true)
            {
                try
                {
                    newClient = myListener.AcceptTcpClient();
                }
                catch (Exception ex)
                {
                    //ImportDataLog.WriteLog("连接中断1111:" + ex.Message);
                    //ImportDataLog.WriteLog(ex.Message);
                    //当单击‘停止监听’或者退出此窗体时 AcceptTcpClient() 会产生异常
                    //因此可以利用此异常退出循环
                    break;
                }
                //每接收一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息;.
                User user = new User(newClient);
                Thread threadReceive = new Thread(ReceiveData);
                threadReceive.IsBackground = true;
                threadReceive.Start(user);
                userList.Add(user.guid,user);

                if (xinYongHuDengLuEvent != null)
                    xinYongHuDengLuEvent(user);
            }
        }
Example #4
0
 void ns_yongHuTuiChuEvent(User user)
 {
     //MessageBox.Show(xu.qq);
     //MessageBox.Show((ns.userList.Count-1).ToString());
 }
Example #5
0
 void ns_xinYongHuDengLuEvent(User user)
 {
     //MessageBox.Show(ns.userList.Count.ToString());
 }
Example #6
0
 void ns_duiHuaEvent(User user, object obj)
 {
     ThreadPool.QueueUserWorkItem(new WaitCallback(duihuacall), new ServerObj(user, obj));
 }
Example #7
0
 internal ServerObj(User user, Object obj)
 {
     this.user = user;
     this.obj = obj;
 }