/// <summary> /// Escuta por conexões de clientes e as aceita. /// </summary> public void Accept() { this.v_listener.Start(); this.v_status = SpartacusMin.Net.ServerStatus.LISTENING; this.v_threadaccept.Start(); this.v_threadcheck.Start(); this.v_threadclean.Start(); }
/// <summary> /// Encerra o Servidor. /// </summary> public void StopServer() { try { this.v_status = SpartacusMin.Net.ServerStatus.NOTLISTENING; if (this.v_threadaccept.IsAlive) { this.v_threadaccept.Abort(); } this.v_listener.Stop(); } catch (System.Exception e) { throw new SpartacusMin.Net.Exception(e); } }
/// <summary> /// Inicializa uma nova instância da classe <see cref="SpartacusMin.Net.Server"/>. /// </summary> /// <param name="p_ip">IP do Servidor.</param> /// <param name="p_port">Porta do Servidor.</param> public Server(string p_ip, int p_port) : base(p_ip, p_port) { this.v_ip = p_ip; this.v_port = p_port; this.v_connect = new SpartacusMin.Net.ConnectEventClass(); this.v_disconnect = new SpartacusMin.Net.DisconnectEventClass(); this.v_available = new SpartacusMin.Net.AvailableEventClass(); this.v_status = SpartacusMin.Net.ServerStatus.NOTLISTENING; this.v_listener = new System.Net.Sockets.TcpListener(System.Net.IPAddress.Parse(p_ip), p_port); this.v_numclients = 0; this.v_clienthandlers = new System.Collections.Generic.List <ClientHandler>(); this.v_threadaccept = new System.Threading.Thread(this.ThreadAccept); this.v_threadcheck = new System.Threading.Thread(this.ThreadCheck); this.v_threadclean = new System.Threading.Thread(this.ThreadClean); this.v_lock = new object(); }