/// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="acceptor">acceptor object</param>
 /// <param name="callBackObj">callback object</param>
 /// <param name="port">port</param>
 /// <param name="noDelay">noDelay falg</param>
 public ServerOps(INetworkServerAcceptor acceptor, String port, INetworkServerCallback callBackObj = null, IRoomCallback roomCallBackObj = null, bool noDelay = true, int socketCount = SocketCount.Infinite)
 {
     this.Port            = port;
     this.Acceptor        = acceptor;
     this.CallBackObj     = callBackObj;
     this.RoomCallBackObj = roomCallBackObj;
     this.NoDelay         = noDelay;
     this.MaxSocketCount  = socketCount;
 }
Esempio n. 2
0
        protected override void execute()
        {
            StartStatus status = StartStatus.FAIL_SOCKET_ERROR;

            try
            {
                lock (m_generalLock)
                {
                    if (IsServerStarted())
                    {
                        status = StartStatus.FAIL_ALREADY_STARTED;
                        throw new CallbackException();
                    }

                    m_callBackObj = m_serverOfs.callBackObj;
                    m_ip          = m_serverOfs.ip;
                    m_port        = m_serverOfs.port;

                    if (m_port == null || m_port.Length == 0)
                    {
                        m_port = ServerConf.DEFAULT_PORT;
                    }

                    m_listener = new TcpListener(IPAddress.Parse(m_ip), Convert.ToInt32(m_port));
                    m_listener.Start();
                    m_listener.BeginAcceptTcpClient(new AsyncCallback(onAccept), this);
                }
            }
            catch (CallbackException)
            {
                m_callBackObj.OnServerStarted(this, status);
                return;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + " >" + ex.StackTrace);
                if (m_listener != null)
                {
                    m_listener.Stop();
                }
                m_listener = null;
                m_callBackObj.OnServerStarted(this, StartStatus.FAIL_SOCKET_ERROR);
                return;
            }

            m_callBackObj.OnServerStarted(this, StartStatus.SUCCESS);
        }
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="callBackObj">callback object</param>
 /// <param name="port">port</param>
 /// <param name="noDelay">noDelay falg</param>
 public ServerOps(INetworkServerCallback callBackObj, String port, bool noDelay=true)
 {
     this.Port = port;
     this.CallBackObj = callBackObj;
     this.NoDelay = noDelay;
 }