Ejemplo n.º 1
0
        /// <summary>
        /// 3.启动服务
        /// </summary>
        /// <param name="ipAdr"></param>
        /// <param name="port"></param>
        /// <param name="reuseAddr">重连选项,是否允许使用重复IP地址和端口,一般内部连接填true,游戏服务填false</param>
        public void bind(string ipAdr, int port, bool reuseAddr)
        {
            //
            this._serverIp   = ipAdr;
            this._serverPort = port;

            //
            IPAddress ipAddress;

            //双网卡支持
            if ("any" == ipAdr.ToLower())
            {
                ipAddress = IPAddress.Any;
            }
            else
            {
                ipAddress = IPAddress.Parse(_serverIp);
            }

            //_tcpLis = new TcpListener(ipAddress, _serverPort);
            _tcpLis = new GameTcpListener();

            if (_tcpLis.Setup(_serverPort))
            {
                _tcpLis.NewSessionConnected += new SessionHandler <AppSession>(Event_NewSessionConnected);
                _tcpLis.NewRequestReceived  += new RequestHandler <AppSession, StringRequestInfo>(Event_NewRequestReceived);
                _tcpLis.SessionClosed       += new SessionHandler <AppSession, CloseReason>(Event_SessionClosed);
            }
            else
            {
                //setup failed
                Console.WriteLine(SR.GetString(SR.Game_tcp_listen_setup_failed));

                throw new ArgumentException(SR.GetString(SR.Game_tcp_listen_setup_failed));
            }

            //_tcpLis.Start();

            //Socket svrSocket = _tcpLis.Server;

            //svrSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, reuseAddr);

            //Start
            //_tcpLis.Start(_maxOnlinePeople);
            if (_tcpLis.Start())
            {
            }
            else
            {
                //start failed
                Console.WriteLine(SR.GetString(SR.Game_tcp_listen_start_failed));

                throw new ArgumentException(SR.GetString(SR.Game_tcp_listen_start_failed));
            }

            //
            Log.WriteStr2("------------------------------------------------------\n");
            Log.WriteStr2("Listen IP:" + _serverIp + ":" + _serverPort + "...\n");

            if ("127.0.0.1" == _serverIp)
            {
                //Log.WriteStr2("提示:你的服务ip未设为外网ip");

                Log.WriteStr2(
                    SR.GetString(SR.ip_is_not_internet)
                    );
            }

            if (System.DateTime.Now.Year <= 2012)
            {
                //Log.WriteStr2("提示:你的服务器当前时间为" + System.DateTime.Now.Year.ToString() + "年,是否正确?");

                Log.WriteStr2(
                    SR.GetString(SR.server_time_year_is_right, System.DateTime.Now.Year.ToString())
                    );
            }

            if ("*" != _allowAccessFromDomain)
            {
                //Log.WriteStr2("提示:客户端只能从" + _allowAccessFromDomain + "的域名进行访问");
            }

            Log.WriteStr2("------------------------------------------------------\n");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 3.启动服务
        /// </summary>
        /// <param name="ipAdr"></param>
        /// <param name="port"></param>
        /// <param name="reuseAddr">重连选项,是否允许使用重复IP地址和端口,一般内部连接填true,游戏服务填false</param>
        public void bind(string ipAdr, int port, bool reuseAddr)
        {
            
            //
            this._serverIp = ipAdr;
            this._serverPort = port;

            //
            IPAddress ipAddress;

            //双网卡支持
            if ("any" == ipAdr.ToLower())
            {
               ipAddress = IPAddress.Any;

            }
            else
            {
               ipAddress = IPAddress.Parse(_serverIp);

            }

            //_tcpLis = new TcpListener(ipAddress, _serverPort);
            _tcpLis = new GameTcpListener();

            if (_tcpLis.Setup(_serverPort))
            {
                _tcpLis.NewSessionConnected += new SessionHandler<AppSession>(Event_NewSessionConnected);
                _tcpLis.NewRequestReceived += new RequestHandler<AppSession, StringRequestInfo>(Event_NewRequestReceived);
                _tcpLis.SessionClosed += new SessionHandler<AppSession, CloseReason>(Event_SessionClosed);
            }
            else
            { 
                //setup failed
                Console.WriteLine(SR.GetString(SR.Game_tcp_listen_setup_failed));

                throw new ArgumentException(SR.GetString(SR.Game_tcp_listen_setup_failed));
            }

            //_tcpLis.Start();
                
            //Socket svrSocket = _tcpLis.Server;            
            //svrSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, reuseAddr);
            
            //Start
            //_tcpLis.Start(_maxOnlinePeople);
            if (_tcpLis.Start())
            {

            }
            else
            { 
                //start failed
                Console.WriteLine(SR.GetString(SR.Game_tcp_listen_start_failed));

                throw new ArgumentException(SR.GetString(SR.Game_tcp_listen_start_failed));
            }

            //            
            Log.WriteStr2("------------------------------------------------------\n");
            Log.WriteStr2("Listen IP:" + _serverIp + ":" + _serverPort + "...\n");

            if ("127.0.0.1" == _serverIp)
            {
                //Log.WriteStr2("提示:你的服务ip未设为外网ip");

                Log.WriteStr2(
                    SR.GetString(SR.ip_is_not_internet)
                );
            }
            
            if (System.DateTime.Now.Year <= 2012)
            {
                //Log.WriteStr2("提示:你的服务器当前时间为" + System.DateTime.Now.Year.ToString() + "年,是否正确?");
            
                Log.WriteStr2(
                    SR.GetString(SR.server_time_year_is_right,System.DateTime.Now.Year.ToString())
                 );
            }

            if ("*" != _allowAccessFromDomain)
            {
                //Log.WriteStr2("提示:客户端只能从" + _allowAccessFromDomain + "的域名进行访问");
            }

            Log.WriteStr2("------------------------------------------------------\n");


        }