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