Esempio n. 1
0
        /// <summary>
        /// Starts the server.
        /// </summary>
        /// <param name="port">The port of the server.</param>
        /// <param name="message">The message to announce the server with.</param>
        /// <returns><see langword="true"/> if the server started successfully, <see langword="false"/> otherwise.</returns>
        public bool StartServer(int port, string message)
        {
            this.port       = port;
            announceMessage = message;

            // setup server
            Server = new ServerTcp(this.port);
            Server.ClientConnected    += OnClientConnected;
            Server.ClientDisconnected += OnClientDisconnected;
            ////Server.DataReceived += OnDataReceived;
            Server.DataReceived += OnDataReceivedAtServer;

            // start server
            bool success = Server.Start();

            if (success == false)
            {
                Debug.Log("Failed to start server!");
                return(false);
            }

            Debug.Log("Started server!");

            // announce server via broadcast
            announcer = new ClientUdp(broadcastIP, 11338);
            success   = announcer.Open();
            if (success == false)
            {
                Debug.Log("Failed to start announcing!");
                return(false);
            }

            InvokeRepeating(nameof(AnnounceServer), 1.0f, 2.0f);
            return(true);
        }
Esempio n. 2
0
    void Start()
    {
        roleMgr     = gameObject.AddComponent <RoleMgr>();
        obstacleMgr = gameObject.AddComponent <ObstacleMgr>();

        clientUdp = new ClientUdp();
        clientUdp.StartClientUdp();
        clientUdp.msg_battle_start    = Message_Battle_Start;
        clientUdp.msg_frame_operation = Message_Frame_Operation;
        clientUdp.msg_delta_frame     = Message_Delta_Frame_Data;

        isBattleStart = false;
        StartCoroutine(WaitInitData());
    }
Esempio n. 3
0
        /// <summary>
        /// Stops the server.
        /// </summary>
        internal void StopServer()
        {
            if (announcer != null)
            {
                CancelInvoke("AnnounceServer");
                announcer.Close();
                announcer.Dispose();
                announcer = null;
            }

            if (Server != null)
            {
                Server.Stop();
                Server.Dispose();
                Server = null;
            }
        }
Esempio n. 4
0
    private float finishTime;    //结束倒计时
    public void CreatBattle(int _battleID, List <MatchUserInfo> _battleUser)
    {
        int randSeed = UnityEngine.Random.Range(0, 100);

        ThreadPool.QueueUserWorkItem((obj) => {
            battleID          = _battleID;
            dic_battleUserUid = new Dictionary <int, int> ();
            dic_udp           = new Dictionary <int, ClientUdp> ();
            dic_battleReady   = new Dictionary <int, bool>();

            int userBattleID = 0;

            TcpEnterBattle _mes = new TcpEnterBattle();
            _mes.randSeed       = randSeed;
            for (int i = 0; i < _battleUser.Count; i++)
            {
                int _userUid = _battleUser [i].uid;
                userBattleID++;

                dic_battleUserUid [_userUid] = userBattleID;

                string _ip = UserManage.Instance.GetUserInfo(_userUid).socketIp;
                var _upd   = new ClientUdp();

                _upd.StartClientUdp(_ip, _userUid);
                _upd.delegate_analyze_message = AnalyzeMessage;
                dic_udp [userBattleID]        = _upd;
                dic_battleReady[userBattleID] = false;

                BattleUserInfo _bUser = new BattleUserInfo();
                _bUser.uid            = _userUid;
                _bUser.battleID       = userBattleID;
                _bUser.roleID         = _battleUser [i].roleID;

                _mes.battleUserInfo.Add(_bUser);
            }

            for (int i = 0; i < _battleUser.Count; i++)
            {
                int _userUid = _battleUser [i].uid;
                string _ip   = UserManage.Instance.GetUserInfo(_userUid).socketIp;
                ServerTcp.Instance.SendMessage(_ip, CSData.GetSendMessage <TcpEnterBattle>(_mes, SCID.TCP_ENTER_BATTLE));
            }
        }, null);
    }
 /// <summary>
 /// Create client muticast mess with MultiCastMessage
 /// </summary>
 public void CreateInfoClient()
 {
     _infoClient = new ClientUdp<MultiCastMessage.MultiCastMessage>(ResourceUtil.Server, ResourceUtil.Port);
     _infoClient.EventGetMess += InfoClient_EventGetMess;
 }