public bool Start() { try { if (_server == null) { _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(this.ListenPort)); _server.WireProtocolFactory = new EzWireProtocolFactory(); _server.ClientConnected += server_ClientConnected; _server.ClientDisconnected += server_ClientDisconnected; _server.Start(); if (this.ActiveCheckClientAvailable) { start_1s_timer(); } } return(true); } catch (Exception ex) { EzLogger.GlobalLogger.warning(string.Format("{0}{2}{1}{2}", ex.Message, ex.StackTrace, Environment.NewLine)); Dispose(); return(false); } }
//---methods public ScsService(int tcpPort, int scsClientMaxCount = 8192) { _scsClientMaxCount = scsClientMaxCount; // Список по сути особен ну нужен, но используется // чтобы отделять клиентов, котоыре еще не прошли регистраци от тех кто уже прошел, // чтобы не пропускать не нужные событи вверх к основному приложению. _authenticatedUsers = new Dictionary <IScsServerClient, User>(); //Синхронная очередь клиентских msg для тех кто еще не прошел аутентификацию _msgReadersForAutentification = new MsgReadersCollection(); _msgReadersForAutentification.RegisterMsgReader <AuthenticationMessage>(AuthenticationMsgReader); _msgQueueForAutentification = new ConcurrentMsgQueue(_msgReadersForAutentification, _authenticatedUsers); _msgQueueForAutentification.ClientEventReaded += MsgQueue_ClientEventReaded; //Синхронная очередь клиентских msg _msgReaders = new MsgReadersCollection(); _msgQueue = new ConcurrentMsgQueue(_msgReaders, _authenticatedUsers); _msgQueue.ClientEventReaded += MsgQueue_ClientEventReaded; // Проходящите подключение клиенты _authenticationStates = new Dictionary <IScsServerClient, UserAuthenticationState>(); // Scs server(tcp слой) _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(tcpPort)); _server.ClientConnected += Server_ClientConnected; _server.ClientDisconnected += Server_ClientDisconnected; }
public NetworkManager(string ipAddress, int port, Type packetHandler, Type fallbackEncryptor, bool isWorldServer) : base(packetHandler, isWorldServer) { _encryptor = (EncryptorT)Activator.CreateInstance(typeof(EncryptorT)); if (fallbackEncryptor != null) { _fallbackEncryptor = (CryptographyBase)Activator.CreateInstance(fallbackEncryptor); } _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(ipAddress, port)); // Register events of the server to be informed about clients _server.ClientConnected += OnServerClientConnected; _server.ClientDisconnected += OnServerClientDisconnected; _server.WireProtocolFactory = new WireProtocolFactory <EncryptorT>(); // Start the server _server.Start(); if (port == 4002) { Console.WriteLine("[Start] Login Server has been started successfully"); Console.WriteLine($"[Info] Started at: {DateTime.Now}"); } if (isWorldServer) { Console.WriteLine($"[Start] World Server has been started successfully"); Console.WriteLine($"[Info] Started at: {DateTime.Now}"); } ; }
public Server(ILog logger, string ipAddress, int port) { _logger = logger; Port = port; Host = ipAddress; _clients = new Dictionary <Guid, IInternalClient>(); PacketService = new TCPServerPacketService(); BanIps = new List <string>(); BanUsers = new List <string>(); BuildBanList(); try { _logger.Info("Start ManageServer at {0}:{1}...", Category.System, Host, Port); _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(Host, Port)); _server.ClientConnected += OnConnected; } catch (Exception ex) { _logger?.Exception(ex, "Start ManagementServer"); } }
/// <summary> /// Creates a new ScsServiceApplication object. /// </summary> /// <param name="scsServer">Underlying IScsServer object to accept and manage client connections</param> /// <exception cref="ArgumentNullException"> /// Throws ArgumentNullException if scsServer argument is null /// </exception> public ScsServiceApplication(IScsServer scsServer) { _scsServer = scsServer ?? throw new ArgumentNullException(nameof(scsServer)); _scsServer.ClientConnected += ScsServer_ClientConnected; _scsServer.ClientDisconnected += ScsServer_ClientDisconnected; _serviceObjects = new ConcurrentDictionary <string, ServiceObject>(); _serviceClients = new ConcurrentDictionary <long, IScsServiceClient>(); }
/// <summary> /// Creates a new ScsServiceApplication object. /// </summary> /// <param name="scsServer">Underlying IScsServer object to accept and manage client connections</param> /// <exception cref="ArgumentNullException"> /// Throws ArgumentNullException if scsServer argument is null /// </exception> public ScsServiceApplication(IScsServer scsServer) { _scsServer = scsServer ?? throw new ArgumentNullException(nameof(scsServer)); _scsServer.ClientConnected += ScsServer_ClientConnected; _scsServer.ClientDisconnected += ScsServer_ClientDisconnected; _serviceObjects = new ThreadSafeSortedList <string, ServiceObject>(); _serviceClients = new ThreadSafeSortedList <long, IScsServiceClient>(); }
public void BeginListening() { this.server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(this.BindAddress, this.BinPort)); this.server.Start(); this.server.ClientConnected += onClientConnected; this.server.ClientDisconnected += onClientDisconnected; }
public void BeginListening() { Log.Info("Start OuterServer at {0}:{1}...", BindAddress, BindPort); OuterServer = ScsServerFactory.CreateServer(new ScsTcpEndPoint(BindAddress, BindPort)); OuterServer.Start(); OuterServer.ClientConnected += OnConnected; OuterServer.ClientDisconnected += OnDisconnected; }
public NetListener() { Log.Info("Start TcpServer at {0}:{1}...", ConfigManager.Network.BindIp, ConfigManager.Network.BindPort); Server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(ConfigManager.Network.BindIp, ConfigManager.Network.BindPort)); Server.Start(); Server.ClientConnected += OnConnected; Server.ClientDisconnected += OnDisconnected; }
public void BeginListening() { Logger.WriteLine(LogState.Info, "GameServer Listening on: {0}:{1}...", BindAddress, BindPort); Server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(BindAddress, BindPort)); Server.Start(); Server.ClientConnected += OnConnected; Server.ClientDisconnected += OnDisconnected; }
public void BeginListening() { Logger.WriteLine(LogState.Info,"GameServer Listening on: {0}:{1}...", BindAddress, BindPort); Server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(BindAddress, BindPort)); Server.Start(); Server.ClientConnected += OnConnected; Server.ClientDisconnected += OnDisconnected; }
public void BeginListening() { Server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(BindAddress, BindPort)); Server.WireProtocolFactory = new KeyProtocolFactory(); Server.ClientConnected += Server_ClientConnected; Server.Start(); Logger.WriteLine(LogState.Info, "LoginServer Listening on: " + BindAddress + ":" + BindPort); }
/// <summary> /// /// </summary> private void StopServer() { scsServer.ClientConnected -= ServerClientConnected; scsServer.ClientDisconnected -= ServerClientDisconnected; scsServer.Stop(); scsServer = null; Start.LargeGlyph = new BitmapImage(new Uri("Images/Start.png", UriKind.Relative)); }
public void SendMessageToAllClients(IScsServer server, string message) { foreach (var clients in server.Clients.GetAllItems()) { if (clients != null && clients.CommunicationState == CommunicationStates.Connected) { clients.SendMessage(new ScsTextMessage(message)); } } }
public void Init(System.Xml.XmlElement handlerElement) { _shutdownEvent = new ManualResetEvent(false); _port = Convert.ToInt32(handlerElement["Port"].InnerText); serverClient = Hik.Communication.Scs.Server.ScsServerFactory.CreateServer(new ScsTcpEndPoint(_port)); serverClient.WireProtocolFactory = new Protocols.GallileoWireProtocolFactory(); serverClient.ClientConnected += new EventHandler<ServerClientEventArgs>(ClientConnected); serverClient.ClientDisconnected += new EventHandler<ServerClientEventArgs>(ClientDisconnected); }
/// <summary> /// Create TCP server by ScsServerFactory in Scs /// </summary> /// <param name="ip">ip address</param> /// <param name="port">port number</param> public void CreateServer(string ip, int port) { _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(ip, port)); // Registered events for server when client connected and disconnected _server.ClientConnected += _server_ClientConnected; _server.ClientDisconnected += _server_ClientDisconnected; // log log.Info("Creating Server successfully"); }
/// <summary> /// /// </summary> private void StartServer() { scsServer = ScsServerFactory.CreateServer(new ScsTcpEndPoint(serverPort)); scsServer.ClientConnected += ServerClientConnected; scsServer.ClientDisconnected += ServerClientDisconnected; scsServer.Start(); Start.LargeGlyph = new BitmapImage(new Uri("Images/Stop.png", UriKind.Relative)); }
/// <summary> /// Creates a new ScsServiceApplication object. /// /// </summary> /// <param name="scsServer">Underlying IScsServer object to accept and manage client connections</param><exception cref="T:System.ArgumentNullException">Throws ArgumentNullException if scsServer argument is null</exception> public ScsServiceApplication(IScsServer scsServer) { if (scsServer == null) { throw new ArgumentNullException("scsServer"); } this._scsServer = scsServer; this._scsServer.ClientConnected += new EventHandler <ServerClientEventArgs>(this.ScsServer_ClientConnected); this._scsServer.ClientDisconnected += new EventHandler <ServerClientEventArgs>(this.ScsServer_ClientDisconnected); this._serviceObjects = new ThreadSafeSortedList <string, ScsServiceApplication.ServiceObject>(); this._serviceClients = new ThreadSafeSortedList <long, IScsServiceClient>(); }
public void StartListening() { //Create a server that listens 8000 TCP port for incoming connections _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(Config.ServerIpAddress, Config.ServerPort)); _server.WireProtocolFactory = new BankProtocolFactory(); //Register events of the server to be informed about clients _server.ClientConnected += Server_ClientConnected; _server.Start(); //Start the server _log.Info(String.Format("Bank Simulator Listening at: ip {0} : port {1}", Config.ServerIpAddress, Config.ServerPort)); _log.Info("Bank Simulator Running..."); }
/// <summary> /// Creates a new ScsServiceApplication object. /// </summary> /// <param name="scsServer">Underlying IScsServer object to accept and manage client connections</param> /// <exception cref="ArgumentNullException">Throws ArgumentNullException if scsServer argument is null</exception> public ScsServiceApplication(IScsServer scsServer) { if (scsServer == null) { throw new ArgumentNullException("scsServer"); } _scsServer = scsServer; _scsServer.ClientConnected += ScsServer_ClientConnected; _scsServer.ClientDisconnected += ScsServer_ClientDisconnected; _serviceObjects = new ThreadSafeSortedList <string, ServiceObject>(); _serviceClients = new ThreadSafeSortedList <string, IScsServiceClient>(); }
public static void StartServer(int listeningPort) { if (!IsServerStarted) { // Создаем сервер, слушаем порт server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(listeningPort)); //Register events of the server to be informed about clients server.ClientConnected += Server_ClientConnected; server.ClientDisconnected += Server_ClientDisconnected; server?.Start(); //Start the server IsServerStarted = true; } }
public void StartListening(string ip, int port) { //Create a server that listens 8000 TCP port for incoming connections _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(ip, port)); _server.WireProtocolFactory = new AtmProtocolFactory(); //Register events of the server to be informed about clients _server.ClientConnected += Server_ClientConnected; _server.ClientDisconnected += Server_ClientDisconnected; _server.Start(); //Start the server _log.Info(String.Format("Server Triton Node Sevice Listening at: ip {0} : port {1}", ip, port)); _log.Info("Switchlink.Switch.Service => Triton Node Sevice Running..."); }
public void Start() { //check CallInChannel client ThreadPool.QueueUserWorkItem(new WaitCallback(CheckConnectedStatus_Thread), SysParameters.SharkHandsInterval); //Create a server that listens gParam.sLocalPort TCP port for incoming connections ScsServer = ScsServerFactory.CreateServer(new ScsTcpEndPoint(ServerPort)); //Register events of the server to be informed about clients ScsServer.ClientConnected += Server_ClientConnected; ScsServer.ClientDisconnected += Server_ClientDisconnected; //Start the server ScsServer.Start(); }
public void Start() { //check upload client CheckConnectedStatusThread = new Thread(CheckConnectedStatus_Thread); CheckConnectedStatusThread.Start(Controller.GetInstance().Args.args.SharkHandsInterval); //Create a server that listens gParam.sLocalPort TCP port for incoming connections server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(UploadServerPort)); //Register events of the server to be informed about clients server.ClientConnected += Server_ClientConnected; server.ClientDisconnected += Server_ClientDisconnected; //Start the server server.Start(); }
public ServerReceiver(IScsServer server) { this._server = server; _commands = new List <ICommand> { new LoginCommand(), new RegisterCommand(), new DisconnectCommand(), new AfterLoginData(), new JoinRoom(), new SendMessageChatCommand(server), new JoinQueueCommand(), }; }
public void Dispose() { try { stop_1s_timer(); _sclients.Clear(); if (_server != null) { _server.Stop(); _server = null; } } catch { } }
protected Server(ushort port, Logger logger, IDatabase database) { if (logger == null || database == null) { throw new Exception("logger == null || database == null"); } Port = port; Logger = logger; Database = database; _scsServer = ScsServerFactory.CreateServer(new ScsTcpEndPoint(port)); _scsServer.WireProtocolFactory = new TWireProtocolFactory(); _scsServer.ClientConnected += Internal_ClientConnected; _scsServer.ClientDisconnected += (s, e) => ClientDisconnected((NetworkClient)e.Client.Tag); }
public void Start() { _config = ServerConfig.LoadConfig(); _receiver = new ServerReceiver(_server); _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(_config.Ip, _config.Port)); new ServerLogic(_receiver, _server); _server.ClientConnected += Client_Connected; _server.Start(); Console.WriteLine("Enter something to close server"); Console.ReadLine(); _server.Stop(); }
public void Start() { mId = Config.User.Id; mServiceName = Config.User.ServiceName; mPort = Config.User.Port; foreach (var server in Config.User.Servers) { try { using (var b = ScsClientFactory.CreateClient(new ScsTcpEndPoint(server.Ip, server.Port))) { b.Connected += ServerOnConnected; b.Disconnected += ServerOnDisconnected; b.MessageReceived += ServerOnMessageReceived; b.ConnectTimeout = 2000; b.Connect(); mBackEnds.Add(b); mReConnecters.Add(new ClientReConnecter(b)); } } catch (Exception ex) { Logger.FatalException("Server " + server.ServiceName + " at " + server.Ip + ":" + server.Port + " can not reached.", ex); return; } } try { mFrontEndServer = ScsServerFactory.CreateServer(new ScsTcpEndPoint(mPort)); mFrontEndServer.WireProtocolFactory = new ProtobufSerializationProtocolFactory(); mFrontEndServer.ClientConnected += ClientConnected; mFrontEndServer.ClientDisconnected += ClientDisconnected; mFrontEndServer.Start(); } catch (Exception ex) { Logger.FatalException("Server start failed.", ex); } }
private void svr_uc_Load(object sender, EventArgs e) { var parser = new FileIniDataParser(); data = parser.ReadFile("app_set.ini"); server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(int.Parse(data["NETWORK"]["MULTI_PORT"]))); server.ClientConnected += Server_ClientConnected; server.ClientDisconnected += Server_ClientDisconnected; restart_pc.Elapsed += Restart_pc_Elapsed; check_task.Elapsed += Check_task_Elapsed; get_csv.Elapsed += Get_csv_Elapsed; get_log.Elapsed += Get_log_Elapsed; get_csv.Enabled = true; get_log.Enabled = true; Rectangle rect = dgv_svr.GetCellDisplayRectangle(0, -1, true); // set checkbox header to center of header cell. +1 pixel to position correctly. rect.X = rect.Location.X + 8; rect.Y = rect.Location.Y + 10; rect.Width = rect.Size.Width; rect.Height = rect.Size.Height; checkboxHeader.Name = "checkboxHeader"; checkboxHeader.Size = new Size(15, 15); checkboxHeader.Location = rect.Location; checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged); dgv_svr.Controls.Add(checkboxHeader); if (Boolean.Parse(data["COPY"]["COPY_RD"])) { check_task.Enabled = true; } if (Boolean.Parse(data["PC"]["RESTART"])) { restart_pc.Enabled = true; } ConnectToServer(); }
/// <summary> /// 实例化ServerStatusService /// </summary> /// <param name="server"></param> /// <param name="container"></param> /// <param name="config"></param> public ServerStatusService(IScsServer server, CastleServiceConfiguration config, IServiceContainer container) { this.config = config; this.server = server; this.container = container; this.startTime = DateTime.Now; this.statuslist = new TimeStatusCollection(config.RecordHours * 3600); this.counterlist = new CounterInfoCollection(config.MinuteCalls); //启动定义推送线程 var threadPush = new Thread(DoPushWork); threadPush.IsBackground = true; threadPush.Start(); //启动自动检测线程 var threadCheck = new Thread(DoCheckWork); threadCheck.IsBackground = true; threadCheck.Start(); }
static void Main(string[] args) { IScsServer server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(LISTENING_PORT)); server.WireProtocolFactory = new MyWireProtocolFactory(); server.ClientConnected += Server_ClientConnected; server.ClientDisconnected += Server_ClientDisconnected; server.Start(); //Start the server Console.WriteLine("Server is started successfully. Press enter to stop..."); Console.ReadLine(); //Wait user to press enter // Disconnect all connected client foreach (IScsServerClient client in server.Clients.GetAllItems()) { client.Disconnect(); } server.Stop(); //Stop the server }
public ServerLogic(ServerReceiver receiver, IScsServer server) { _server = server; using (var reader = SqlHelper.ExecuteDataReader("SELECT * FROM Room")) while (reader.Read()) { var id = Convert.ToInt32(reader["Id"].ToString()); var name = reader["Name"].ToString(); var host = reader["Host"].ToString(); var image = reader["ImageUrl"].ToString(); var description = reader["Description"].ToString(); DataSingleton.Instance.Rooms[roomCount] = new Room(id, name, host, image, description); DataSingleton.Instance.Rooms[roomCount].InsideInfo = new Room.InsindeInfo(new List <UserClient>(), new List <Dj>(), DataSingleton.Instance.Rooms[roomCount]); roomCount++; } PeriodicTask.StartNew(1000, TrackRefresh); }
public NetworkManager(string ipAddress, int port, Type packetHandler, Type fallbackEncryptor, bool isWorldServer) : base(packetHandler, isWorldServer) { _encryptor = (EncryptorT)Activator.CreateInstance(typeof(EncryptorT)); if (fallbackEncryptor != null) { _fallbackEncryptor = (EncryptionBase)Activator.CreateInstance(fallbackEncryptor); } _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(ipAddress, port)); // Register events of the server to be informed about clients _server.ClientConnected += OnServerClientConnected; _server.ClientDisconnected += OnServerClientDisconnected; _server.WireProtocolFactory = new WireProtocolFactory <EncryptorT>(); // Start the server _server.Start(); Logger.Log.Info(Language.Instance.GetMessageFromKey("STARTED")); }
private StaticNode(int port) { _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(port)); _server.ClientConnected += (s, e) => e.Client.MessageReceived += Client_MessageReceived; }
/// <summary> /// 实例化CastleService /// </summary> /// <param name="config"></param> public CastleService(CastleServiceConfiguration config) { this.config = config; if (string.Compare(config.Host, "any", true) == 0) { config.Host = IPAddress.Loopback.ToString(); epServer = new ScsTcpEndPoint(config.Port); } else epServer = new ScsTcpEndPoint(config.Host, config.Port); this.server = ScsServerFactory.CreateServer(epServer); this.server.ClientConnected += server_ClientConnected; this.server.ClientDisconnected += server_ClientDisconnected; this.server.WireProtocolFactory = new CustomWireProtocolFactory(config.Compress, config.Encrypt); //服务端注入内存处理 this.container = new SimpleServiceContainer(CastleFactoryType.Local); this.container.OnError += error => { if (OnError != null) OnError(error); }; this.container.OnLog += (log, type) => { if (OnLog != null) OnLog(log, type); }; //实例化SmartThreadPool var stp = new STPStartInfo { IdleTimeout = config.Timeout * 1000, MaxWorkerThreads = Math.Max(config.MaxCalls, 10), MinWorkerThreads = 5, ThreadPriority = ThreadPriority.Normal, WorkItemPriority = WorkItemPriority.Normal }; //创建线程池 smart = new SmartThreadPool(stp); smart.Start(); //创建并发任务组 var group = smart.CreateWorkItemsGroup(2); group.Start(); //实例化调用者 var status = new ServerStatusService(server, config, container); this.caller = new ServiceCaller(group, status); //判断是否启用httpServer if (config.HttpEnabled) { //设置默认的解析器 IHttpApiResolver resolver = new DefaultApiResolver(); //判断是否配置了HttpType if (config.HttpType != null && typeof(IHttpApiResolver).IsAssignableFrom(config.HttpType)) { resolver = Activator.CreateInstance(config.HttpType) as IHttpApiResolver; } var httpCaller = new HttpServiceCaller(group, config, container); //刷新服务委托 status.OnRefresh += () => httpCaller.InitCaller(resolver); //初始化调用器 httpCaller.InitCaller(resolver); var handler = new HttpServiceHandler(httpCaller); var factory = new HttpRequestHandlerFactory(handler); this.httpServer = new HTTPServer(factory, config.HttpPort); } //绑定事件 MessageCenter.Instance.OnError += Instance_OnError; }
public bool Start() { try { if (_server == null) { _server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(this.ListenPort)); _server.WireProtocolFactory = new EzWireProtocolFactory(); _server.ClientConnected += server_ClientConnected; _server.ClientDisconnected += server_ClientDisconnected; _server.Start(); if (this.ActiveCheckClientAvailable) start_1s_timer(); } return true; } catch (Exception ex) { EzLogger.GlobalLogger.warning(string.Format("{0}{2}{1}{2}", ex.Message, ex.StackTrace, Environment.NewLine)); Dispose(); return false; } }