示例#1
0
        /// <summary>
        /// 停止
        /// </summary>
        public void Stop()
        {
            if (IsWorking)
            {
                IsWorking = false;

                Utility.Debuger.DebugLog("Socket Server:Stoping....");
                CurrentConnectionManager.Each((client) =>
                {
                    //服务器关闭
                    DisConnectClient(client, 0);
                    return(false);
                });
                CurrentConnectionManager.Clear();

                MREvent.Set();
                SendMREvent.Set();
                AcceptThread.Join();
                SendThread.Join();
                SendThread   = null;
                AcceptThread = null;
                _socket.Close();
                _socket = null;
            }
        }
示例#2
0
        public void Start()
        {
            OnStart();
            IsWorking = true;
            CurrentConnectionManager.Clear();
            _socket = new Socket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            //_socket.SendTimeout = 999;
            //_socket.ReceiveTimeout = 999;
            _socket.LingerState = new LingerOption(true, 10);
            _socket.Bind(new IPEndPoint(IPAddress.Any, Port));
            _socket.Listen(2000);

            AcceptThread = new Thread(new ThreadStart(ThreadRun));
            AcceptThread.IsBackground = true;
            AcceptThread.Start();

            SendThread = new Thread(new ThreadStart(SendMessage));
            SendThread.IsBackground = true;
            SendThread.Start();

            Debuger.DebugLog("Server Listen at port:" + Port);
        }