/// <summary> /// 异步建立客户端连接回调 /// </summary> private void AcceptCallBack(IAsyncResult ar) { try { Socket socket = listen.EndAccept(ar); SessionClient session = SessionClientPool.GetSessionClient(); if (session == null) { socket.Close(); Console.WriteLine("警告:连接已满!"); } else { session.Initialize(socket); string address = session.GetRemoteAddress(); Console.WriteLine("客户端连接 [{0}]", address); } listen.BeginAccept(AcceptCallBack, null); } catch (Exception e) { Console.WriteLine("异步建立客户端连接失败:" + e.Message); } }
/// <summary> /// 启动服务器 /// </summary> public void StartServer(string host, int port) { listen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ipAddress = IPAddress.Parse(host); IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, port); listen.Bind(ipEndPoint); listen.Listen(maxClient); listen.BeginAccept(AcceptCallBack, null); Console.WriteLine("服务器启动成功!"); SessionClientPool.SetMaxSessionClient(maxClient); }
public override bool Process(ActionParameter parameter) { string message = "【系统通知】 " + parameter.GetValue <string>("message"); DynamicBuffer buffer = new DynamicBuffer(); buffer.WriteValue(message); DataPackage packet = new DataPackage(buffer, 100); foreach (var session in SessionClientPool.GetOnlineSession()) { session.Send(packet); } return(true); }
public override bool Process(ActionParameter parameter) { List <string> onlineList = new List <string>(); foreach (var session in SessionClientPool.GetOnlineSession()) { onlineList.Add(session.GetRemoteAddress()); } DynamicBuffer buffer = new DynamicBuffer(0); buffer.WriteObject(onlineList); DataPackage packet = new DataPackage(buffer, 100); Session.Send(packet); return(true); }
/// <summary> /// 异步建立客户端连接回调 /// </summary> private void AcceptCallBack(IAsyncResult ar) { try { Socket _socket = listen.EndAccept(ar); SessionClient _client = SessionClientPool.GetSessionClient(); if (_client != null) { _client.Initialize(_socket); Console.WriteLine("客户端连接 [{0}]", _socket.RemoteEndPoint.ToString()); } else { _socket.Close(); Console.WriteLine("警告:连接已满!"); } listen.BeginAccept(AcceptCallBack, null); } catch (Exception e) { Console.WriteLine("异步建立客户端连接失败:" + e.Message); } }