/// <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); }
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()); }
/// <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; } }
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; }