Ejemplo n.º 1
0
        //public GameServer(IListener listener, ISystemSettings sysSettings, IRoomFabric RoomFabric = null, IServerEngineFabric EngineFabric = null)
        public GameServer(IIpEPprovider ipEpProvider, ISystemSettings sysSettings, IRoomFabric RoomFabric = null, IServerEngineFabric EngineFabric = null)
        {
            _sys_settings   = sysSettings;
            _next_room_port = sysSettings.RoomPortMin;

            ServerListner = new Listener(ipEpProvider, sysSettings.HostListeningPort);
            RegisterListener(ServerListner);

            if (RoomFabric != null)
            {
                _roomFabric = RoomFabric;
            }
            else
            {
                _roomFabric = new RoomFabric();
            }

            if (EngineFabric != null)
            {
                _engineFabric = EngineFabric;
            }
            else
            {
                _engineFabric = new ServerEngineFabric();
            }
        }
Ejemplo n.º 2
0
        public Listener(IIpEPprovider ipEPprovider, Int32 Port)
        {
            IPHostEntry HostEntry = Dns.GetHostEntry(Dns.GetHostName());

            //IPAddress ipv4Addr = HostEntry.AddressList[2];
            //IPAddress ipv6Addr = HostEntry.AddressList[0];

            //IPEndPoint ipv4EP = new IPEndPoint(ipv4Addr, Port);
            //IPEndPoint ipv6EP = new IPEndPoint(ipv6Addr, Port);

            IPEndPoint ipv4EP = ipEPprovider.CreateIPEndPoint(AddressFamily.InterNetwork, Port);
            IPEndPoint ipv6EP = ipEPprovider.CreateIPEndPoint(AddressFamily.InterNetworkV6, Port);

            if (ipv4EP != null)
            {
                ipv4_listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                ipv4_listener.Bind(ipv4EP);
            }

            if (ipv6EP != null)
            {
                ipv6_listener = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
                ipv6_listener.Bind(ipv6EP);
            }
        }